Python學習-第二章 列表和元組
阿新 • • 發佈:2018-11-11
列表和元組
在Python中,最基本的資料結構為序列。
Python內建了多種序列,最常用的兩種:列表和元組。
列表和元組的主要不同在於,列表是可以修改的,而元組不可以。
對於切片的理解:
>>> numbers=[1,2,3,4,5,6,7,8,9,10]
>>> numbers[3:6]
[4, 5, 6]
>>> numbers[-3:-1]
[8, 9]
>>> numbers[-3:0]
[]
你提供兩個索引來指定切片的邊界,其中一個索引指定的元素包含在切片內,但第二個索引指定的元素不包含在切片內。
如果第一個索引指定的元素位於第二個索引指定的元素後面,結果就為空序列。
在步長為負數時,第一個索引必須比第二個索引大。
>>> numbers[8:3:-1]
[9, 8, 7, 6, 5]
可以使用加法運算來拼接序列但是不能拼接列表和字串。
>>> 'Hello'+'world'
'Helloworld'
>>> [1,2,3,4]+[5,6,7,8]
[1, 2, 3, 4, 5, 6, 7, 8]
序列與數x相乘時,將重複這個序列x次來建立一個新的序列。
要將字元列表轉換為字串,可使用下面的表示式.join(somelist)
其中somelist是要轉換的列表。
方法copy複製列表
>>> a=[1,2,3] >>> b=a >>> b[1]=4 >>> a [1, 4, 3] 要讓a和b指向不同的列表,就必須將b關聯到a的副本。 >>> a=[1,2,3] >>> b=a.copy() >>> b[1]=4 >>> a [1, 2, 3]
方法count計算指定的元素在列表中出現了多少次。
>>> x=[[1,2],1,1,[2,1,[1,2]]]
>>> x.count(1)
2
>>> x.count([1,2])
1
方法extend能夠同時吉桑多個值附加到列表末尾,為此可將這些值組成的序列作為引數提供給方法extend。
>>> a=[1,2,3]
>>> b=[4,5,6]
>>> a.extend(b)
>>> a
[1, 2, 3, 4, 5, 6]
方法pop從列表中刪除一個元素(末尾為最後一個元素),並返回這一元素。
>>> x=[1,2,3]
>>> x.pop()
3
>>> x.pop(0)
1
>>> x
[2]
方法reverse按相反的順序排列列表中的元素。
>>> x=[1,2,3]
>>> x.reverse()
>>> x
[3, 2, 1]
方法sort用於對列表就地排序。方法sort接受兩個可選引數:key和reverse。引數key類似於引數cmp:你將其設定為一個用於排序的函式。引數reverse,只需將其指定為一個真值,以指出是否要按相反的順序對列表進行排序。
>>> x=[4,6,1,9,3,7]
>>> x.sort()
>>> x
[1, 3, 4, 6, 7, 9]
>>> x=['aardvark','abalone','acme','add','aerate']
>>> x.sort(key=len)
>>> x
['add', 'acme', 'aerate', 'abalone', 'aardvark']
>>> x=[4,6,2,1,7,9]
>>> x.sort(reverse=True)
>>> x
[9, 7, 6, 4, 2, 1]
如果只包含一個值的元組則必須在它後面加上逗號。若果不加還是返回一個數值。
>>> 42
42
>>> 42,
(42,)
>>> 3*(40+2)
126
>>> 3*(40+2,)
(42, 42, 42)
函式tuple的工作原理與list很像:它將一個序列作為引數,並將其轉換為元組。如果引數已經是元組,就原封不動地返回它。
>>> tuple([1,2,3])
(1, 2, 3)
>>> tuple('abc')
('a', 'b', 'c')