python第三課

使用list和tuple

1.list

list是一種有序的集合胞锰,可以隨時添加和刪除其中的元素宋税。
比如羡玛,列出班里所有同學(xué)的名字操骡,就可以用一個list表示:

>>> classmates = ['Michael', 'Bob', 'Tracy']
>>> classmates['Michael', 'Bob', 'Tracy']

變量classmates就是一個list致稀。用len()函數(shù)可以獲得list元素的個數(shù):

>>> len(classmates)
3

用索引來訪問list中每一個位置的元素冈闭,記得索引是從0
開始的:

>>> classmates[0]
'Michael'
>>> classmates[1]
'Bob'
>>> classmates[2]
'Tracy'
>>> classmates[3]
Traceback (most recent call last): File "<stdin>", line 1, 
in <module>IndexError: list index out of range

當索引超出了范圍時,Python會報一個IndexError錯誤抖单,所以萎攒,要確保索引不要越界,記得最后一個元素的索引是len(classmates) - 1矛绘。
如果要取最后一個元素躺酒,除了計算索引位置外,還可以用-1做索引蔑歌,直接獲取最后一個元素:

>>> classmates[-1]
'Tracy'

使用list和tuple
閱讀: 363719
list
Python內(nèi)置的一種數(shù)據(jù)類型是列表:list羹应。list是一種有序的集合,可以隨時添加和刪除其中的元素次屠。
比如园匹,列出班里所有同學(xué)的名字雳刺,就可以用一個list表示:

>>> classmates = ['Michael', 'Bob', 'Tracy']
>>> classmates['Michael', 'Bob', 'Tracy']

變量classmates
就是一個list。用len()
函數(shù)可以獲得list元素的個數(shù):

>>> len(classmates)
3

用索引來訪問list中每一個位置的元素裸违,記得索引是從0
開始的:

>>> classmates[0]
'Michael'
>>> classmates[1]
'Bob'
>>> classmates[2]
'Tracy'
>>> classmates[3]
Traceback (most recent call last): File "<stdin>", line 1, 
in <module>IndexError: list index out of range

當索引超出了范圍時掖桦,Python會報一個IndexError錯誤,所以供汛,要確保索引不要越界枪汪,記得最后一個元素的索引是len(classmates) - 1

如果要取最后一個元素怔昨,除了計算索引位置外雀久,還可以用-1
做索引,直接獲取最后一個元素:

>>> classmates[-1]
'Tracy'

以此類推趁舀,可以獲取倒數(shù)第2個赖捌、倒數(shù)第3個:

>>> classmates[-2]
'Bob'
>>> classmates[-3]
'Michael'
>>> classmates[-4]
Traceback (most recent call last): File "<stdin>", line 1,
 in <module>IndexError: list index out of range

當然,倒數(shù)第4個就越界了矮烹。

list是一個可變的有序表越庇,所以,可以往list中追加元素到末尾:

>>> classmates.append('Adam')
>>> classmates['Michael', 'Bob', 'Tracy', 'Adam']

也可以把元素插入到指定的位置奉狈,比如索引號為1的位置:

>>> classmates.insert(1, 'Jack')
>>> classmates['Michael', 'Jack', 'Bob', 'Tracy', 'Adam']

要刪除list末尾的元素卤唉,用pop()方法:

>>> classmates.pop()
'Adam'
>>> classmates['Michael', 'Jack', 'Bob', 'Tracy']

要刪除指定位置的元素,用pop(i)方法仁期,其中i是索引位置:

>>> classmates.pop(1)
'Jack'
>>> classmates['Michael', 'Bob', 'Tracy']

要把某個元素替換成別的元素桑驱,可以直接賦值給對應(yīng)的索引位置:

>>> classmates[1] = 'Sarah'
>>> classmates['Michael', 'Sarah', 'Tracy']

list里面的元素的數(shù)據(jù)類型也可以不同,比如:

>>> L = ['Apple', 123, True]

list元素也可以是另一個list蟀拷,比如:

>>> s = ['python', 'java', ['asp', 'php'], 'scheme']
>>> len(s)4

要注意s只有4個元素碰纬,其中s[2]又是一個list萍聊,如果拆開寫就更容易理解了:

>>> p = ['asp', 'php']
>>> s = ['python', 'java', p, 'scheme']

要拿到'php'可以寫p[1]或者s[2][1]问芬,因此s可以看成是一個二維數(shù)組,類似的還有三維寿桨、四維……數(shù)組此衅,不過很少用到。
如果一個list中一個元素也沒有亭螟,就是一個空的list挡鞍,它的長度為0:

>>> L = []
>>> len(L)
0

2.tuple

另一種有序列表叫元組:tuple。tuple和list非常類似预烙,但是tuple一旦初始化就不能修改墨微,比如同樣是列出同學(xué)的名字:

>>> classmates = ('Michael', 'Bob', 'Tracy')

現(xiàn)在,classmates這個tuple不能變了扁掸,它也沒有append()翘县,insert()這樣的方法最域。其他獲取元素的方法和list是一樣的,你可以正常地使用classmates[0]锈麸,classmates[-1]镀脂,但不能賦值成另外的元素。
不可變的tuple有什么意義忘伞?因為tuple不可變薄翅,所以代碼更安全。如果可能氓奈,能用tuple代替list就盡量用tuple翘魄。
tuple的陷阱:當你定義一個tuple時,在定義的時候探颈,tuple的元素就必須被確定下來熟丸,比如

>>> t = ()
>>> t()

但是,要定義一個只有1個元素的tuple伪节,如果你這么定義:

>>> t = (1)
>>> t
1

定義的不是tuple光羞,是1這個數(shù)!這是因為括號()既可以表示tuple怀大,又可以表示數(shù)學(xué)公式中的小括號纱兑,這就產(chǎn)生了歧義,因此化借,Python規(guī)定潜慎,這種情況下,按小括號進行計算蓖康,計算結(jié)果自然是1铐炫。

所以,只有1個元素的tuple定義時必須加一個逗號,蒜焊,來消除歧義

最后來看一個“可變的”tuple:

>>> t = ('a', 'b', ['A', 'B'])
>>> t[2][0] = 'X'
>>> t[2][1] = 'Y'
>>> t('a', 'b', ['X', 'Y'])
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末倒信,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子泳梆,更是在濱河造成了極大的恐慌鳖悠,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,542評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件优妙,死亡現(xiàn)場離奇詭異乘综,居然都是意外死亡,警方通過查閱死者的電腦和手機套硼,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評論 3 394
  • 文/潘曉璐 我一進店門卡辰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事九妈∑涌遥” “怎么了?”我有些...
    開封第一講書人閱讀 163,912評論 0 354
  • 文/不壞的土叔 我叫張陵允蚣,是天一觀的道長于颖。 經(jīng)常有香客問我,道長嚷兔,這世上最難降的妖魔是什么森渐? 我笑而不...
    開封第一講書人閱讀 58,449評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮冒晰,結(jié)果婚禮上同衣,老公的妹妹穿的比我還像新娘。我一直安慰自己壶运,他們只是感情好耐齐,可當我...
    茶點故事閱讀 67,500評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著蒋情,像睡著了一般埠况。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上棵癣,一...
    開封第一講書人閱讀 51,370評論 1 302
  • 那天辕翰,我揣著相機與錄音,去河邊找鬼狈谊。 笑死喜命,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的河劝。 我是一名探鬼主播壁榕,決...
    沈念sama閱讀 40,193評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼赎瞎!你這毒婦竟也來了牌里?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,074評論 0 276
  • 序言:老撾萬榮一對情侶失蹤煎娇,失蹤者是張志新(化名)和其女友劉穎二庵,沒想到半個月后贪染,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體缓呛,經(jīng)...
    沈念sama閱讀 45,505評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,722評論 3 335
  • 正文 我和宋清朗相戀三年杭隙,在試婚紗的時候發(fā)現(xiàn)自己被綠了哟绊。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,841評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡痰憎,死狀恐怖票髓,靈堂內(nèi)的尸體忽然破棺而出攀涵,到底是詐尸還是另有隱情,我是刑警寧澤洽沟,帶...
    沈念sama閱讀 35,569評論 5 345
  • 正文 年R本政府宣布以故,位于F島的核電站,受9級特大地震影響裆操,放射性物質(zhì)發(fā)生泄漏怒详。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,168評論 3 328
  • 文/蒙蒙 一踪区、第九天 我趴在偏房一處隱蔽的房頂上張望昆烁。 院中可真熱鬧,春花似錦缎岗、人聲如沸静尼。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽鼠渺。三九已至,卻和暖如春眷细,著一層夾襖步出監(jiān)牢的瞬間系冗,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評論 1 269
  • 我被黑心中介騙來泰國打工薪鹦, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留掌敬,地道東北人。 一個月前我還...
    沈念sama閱讀 47,962評論 2 370
  • 正文 我出身青樓池磁,卻偏偏與公主長得像奔害,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子地熄,可洞房花燭夜當晚...
    茶點故事閱讀 44,781評論 2 354

推薦閱讀更多精彩內(nèi)容

  • Python 是一種相當高級的語言华临,通過 Python 解釋器把符合語法的程序代碼轉(zhuǎn)換成 CPU 能夠執(zhí)行的機器碼...
    Python程序媛閱讀 1,904評論 0 3
  • 一、python 變量和數(shù)據(jù)類型 1.整數(shù) Python可以處理任意大小的整數(shù)端考,當然包括負整數(shù)雅潭,在Python程序...
    績重KF閱讀 1,700評論 0 1
  • 最近在慕課網(wǎng)學(xué)習(xí)廖雪峰老師的Python進階課程,做筆記總結(jié)一下重點却特。 基本變量及其類型 變量 在Python中扶供,...
    victorsungo閱讀 1,681評論 0 5
  • python轉(zhuǎn)義字符:\ python用r' '表示' '默認不轉(zhuǎn)義示例:print(r'\\\t\\')結(jié)果:\...
    bjchenli閱讀 486評論 0 0
  • 簡介 Python是開源的Python由很多解釋器:CPython(官方),IPython(增強交互模式)裂明,PyP...
    齊天大圣李圣杰閱讀 323評論 0 3