序列
序列是Python中的內置數據結構,常見的序列有:列表、字典、元組。 所有的序列都有自己的索引,程序可以通過索引來訪問對應的值。
列表 list
list是Python的一種最常見的內置數據類型。list是一種無序的可重復的數據序列,可以隨時添加和刪除其中的元素。列表的長度一般是事先未確定的,並可在程序執行期間發生改變。
列表的每個元素都分配一個數字索引,和C語言中的數組一樣的從0開始。 列表的創建使用兩個方括號“[]”,並使用逗號作為元素的分割。 列表並不要求其元素的類型相同,只需將其元素通過逗號分割開來即可。
創建list
>>> list_1 = [3,1,2,'c','b','a']
>>> list_1
[3, 1, 2, 'c', 'b', 'a']
訪問list中的元素
list對每個元素都指定了對應的從0開始的數字索引,也就是元素在list中的位置,程序可以通過這個索引來訪問對應的元素。
>>> list_2 = ['a','b','c','d','e','f','g','h','i','j']
>>> list_2[1]
'b'
>>> list_2[5]
'f'
list的切片訪問
list訪問元素是通過其索引來實現的,除了可以一個個地訪問,也可以通過list的切片功能來實現批量訪問。
切片訪問列表采用:list_name[begin:end:step] 來實現。begin表示起始位置(默認為0),end表示結束位置(默認為最后一個元素),step是步長(默認為1)。
切片訪問如果是連續的順序元素,將不會包括最后一個元素。
例1:訪問位置從1開始,到5結束的所有元素
>>> list_2 = ['a','b','c','d','e','f','g','h','i','j']
>>> list_2[1:5]
['b', 'c', 'd', 'e'] # 輸出的結果不包括下表為5的元素
例2:訪問偶數下表的所有訪問:
>>> list_2 = ['a','b','c','d','e','f','g','h','i','j']
>>> list_2[0::2]
['a', 'c', 'e', 'g', 'i']
例3:訪問最后一個元素: >>> list_2[-1] 'j' # 同理,倒數第二個元素,以此類推 >>> list_2[-2]
'i' >>> list_2[-3] 'h'
例4:訪問最后三個元素:
>>> list_2[-1:-4:-1]
['j', 'i', 'h']
>>>
元素類型
由於,Python中的list對其元素並沒有做限制,只要是合法的對象都可以作為其元素。
例如:嵌套list
>>> Lst1 = [1,2,3]
>>> Lst2 = ['a','b','c']
>>> Lst3 = [ Lst1 , Lst2 ]
>>> Lst3
[[1, 2, 3], ['a', 'b', 'c']]
>>> Lst3[0]
[1, 2, 3]
>>> Lst3[1]
['a', 'b', 'c']
例如:訪問內嵌list的元素
# 可以理解為: Lst3[0] ==> Lst1,然后采用list常規的操作方式即可實現對Lst3[0]進行操作。
>>> Lst3[0][1]
2
>>> Lst3[0][1:3]
[2, 3]
列表中的常見的方法:
- append(item):列表末尾插入item
例如:添加一個元素
>>> list = ['a','b','c']
>>> list
['a', 'b', 'c']
>>> list.append('d')
>>> list
['a', 'b', 'c', 'd']
例如:添加一個新列表
>>> list.append([1,2,3])
>>> list
['a', 'b', 'c', 'd', [1, 2, 3]]
- count(element):返回element在列表中的個數
例如:添加一個元素“a”,返回其在列表中個數
>>> list.append('a')
>>> list
['a', 'b', 'c', 'd', [1, 2, 3], 'a']
>>> list.count('a')
2
- extend(newlist):將newlist列表中的元素添加到列表末尾
例如:將['e','f','g']中的所有元素添加為list中的元素,而不是嵌套插入
>>> list.extend(['e','f','g'])
>>> list
['a', 'b', 'c', 'd', [1, 2, 3], 'a', 'e', 'f', 'g']
- index(element):返回element在列表中的首次出現的索引。
例如:“a”在list中有兩個,現在需要返回其第一次出現時的索引
>>> list.index('a')
0
- insert(index,item):在位置index插入item
例如:在第0個位置插入“A”
>>> list.insert(0,'A')
>>> list
['A', 'a', 'b', 'c', 'd', [1, 2, 3], 'a', 'e', 'f', 'g']
>>> list.index('a')
1
- pop([index]):index位置參數是可選的。如果無參數,則會刪除並返回最后一個元素;有參數則刪除並返回指定位置的元素。
例如:[1, 2, 3]在 list 中的第5個位置,將其刪除
>>> list.pop(5)
[1, 2, 3]
>>> list
['A', 'a', 'b', 'c', 'd', 'a', 'e', 'f', 'g']
>>>
- remove(element):刪除首次在列表中出現的element。
例如: 將首次出現的“a”刪除
>>> list.remove('a')
>>> list
['A', 'b', 'c', 'd', 'a', 'e', 'f', 'g']
>>>
- reverse():反轉列表中的內容。
例如:翻轉整個list
>>> list.reverse()
>>> list
['g', 'f', 'e', 'a', 'd', 'c', 'b', 'A']
- sort([compare-funciton]):對列表進行排序。可選參數“compare-function”是一個函數,指定比較的條件。
例如:默認的排序方式
>>> list = [5,6,65,32,1,32]
>>> list.sort()
>>> list
[1, 5, 6, 32, 32, 65]
>>> list = ['c','e','a','r','b']
>>> list.sort()
>>> list
['a', 'b', 'c', 'e', 'r']
Python列表腳本操作符
列表支持 + 和 * 的操作符。
+ :用於組合列表
>>> [1,2,3] + [4,5,6]
[1, 2, 3, 4, 5, 6]
*:用於重復列表
>>> [1,2,3] * 3
[1, 2, 3, 1, 2, 3, 1, 2, 3]