一:
html
列表: listpython
列表的定義:數組
1,列表是由一系列元素組成,元素與元素之間可能沒有任何的關聯關係,但他們之間有前後順序關係。app
2,列表是一種容器ssh
3,列表是一種序列ide
4,列表是能夠改變的序列函數
python3 中的序列有以下幾種:測試
字符串 strspa
列表 Listorm
元組 tuple
字節串 bytes
字節數組 bytearray
建立空列表的字面值:
L = [ ] #L 綁定空列表
建立非空列表的字面值:
L = [1, 2, 3, 4, 5]
L = ['beijing', 'shanghai', sshenzhen]
L = [1, 'two', 3.3, '四']
L = [1.2, [3,1, 3.2, 3.3], 4]
列表的構造函數
函數說明
list()# 生成一個空的列表 等同於 []
list(iterable)# 用可迭代對象建立一個列表
>>> list('hello') ['h', 'e', 'l', 'l', 'o'] >>> list(range(1,10,2)) [1, 3, 5, 7, 9] >>>
-----------------------------------------------------------------
列表的運算:
+ += * *=
列表對 + 和 * 的操做符與字符串類似。+ 號用於組合列表,* 號用於重複列表。
以下所示:
Python 表達式 | 結果 | 描述 |
---|---|---|
len([1, 2, 3]) | 3 | 長度 |
[1, 2, 3] + [4, 5, 6] | [1, 2, 3, 4, 5, 6] | 組合 |
['Hi!'] * 4 | ['Hi!', 'Hi!', 'Hi!', 'Hi!'] | 重複 |
3 in [1, 2, 3] | True | 元素是否存在於列表中 |
for x in [1, 2, 3]: print x, | 1 2 3 | 迭代 |
1,+用於拼接列表
>>> x = [1,2,3] >>> y = [4,5,6,7] >>> x + y [1, 2, 3, 4, 5, 6, 7] >>>
2,+=用原列表與右側列表拼接,並用變量綁定新列表。
>>> x = [1,2,3] >>> x += [4,5,6] >>> x [1, 2, 3, 4, 5, 6] >>>
3, *生成重複的列表
>>> x = [1,2,3] * 3 >>> x [1, 2, 3, 1, 2, 3, 1, 2, 3] #生成三個一樣的重複列表 >>> x = [1,2,3] * 2 >>> x [1, 2, 3, 1, 2, 3] #生成兩個一樣的重複列表 >>>
4,*=生成重複的列表,並給原變量賦值
>>> x = [3,4] >>> x *= 2 >>> x [3, 4, 3, 4] >>> x *= 4 >>> x [3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4] >>> y = 3 >>> y *= [7,8] >>> y [7, 8, 7, 8, 7, 8] >>>
列表的比較運算:
運算符:
<<=>>===!=
>>> [1,2,3] < [1,2,4] #安裝順序取列表中的每個依次比較,依次比較中,那個數大,那個列表就大,後面的就不比較了 True >>> [1,3] > [1,2,4] True >>> [1,2,3] < [1,3,4,5,6,7,8] True >>>
列表的in / not in 運算符:
in 判斷一個對象是否存在容器內,若是存在返回True.不然返回False
用法同字符串的in相同
語法:
數據對象 in 容器
>>> L = [1,'Two', 3.3, '四'] >>> 1 in L #判斷’1‘是否在列表中,在返回True True >>> 2 in L False >>> 3.3 in L #判斷’3.3‘是否在列表中,在返回True True >>> '4' not in L #判斷4是否‘不在’列表中,在返回True True >>> '四' in L #判斷‘四’是否在列表中,在返回True True >>>
列表的索引:
語法:
列表[整數表達式]
用法:
取值時,等同於字符串的索引操做。
索引分爲正向索引和反向索引,規則與字符串索引規則徹底相同
>>> L = [1,2,3,4,5,6] >>> L[0] 1 >>> L[2] 3 >>> L[2] 3 >>> L[-1] 6 >>> L[-2] 5
列表的索引賦值:
列表是可變的序列,能夠經過索引賦值改變列表中的元素
>>> L = [1,2,3,4] >>> L [1, 2, 3, 4] >>> L[2] = 3.5 #將第三個元素改成3.5 >>> L [1, 2, 3.5, 4] #的到修改後的新列表 >>>
列表的切片:
語法:
列表[:]
列表[::]
列表的切片取值時,返回一個列表,規則等同於字符串切片規則。
列表的切片賦值:
做用:
能夠改變原列表的排序,能夠插入和修改數據
能夠用切片改變列表的對應元素的值。
語法:
列表[切片] = 可迭代對象。
注:賦值運算符的右側必須是一個可迭代對象
如:
>>> L = [1,2,3,4] >>> L[0:1] = [1.1, 2.2] #在首位和第一位添加1.1 和修改列表第一位‘1’爲2.2 (列表是可修改的) >>> L [1.1, 2.2, 2, 3, 4] >>> >>> L = [1,2,3,4] >>> L[1:] = [3.3,4.4,5.5] #修改第一位後面全部的字符。 >>> L [1, 3.3, 4.4, 5.5] >>> L = [1,2,3,4] >>> L[:] #這個結果爲打印整個列表 [1, 2, 3, 4] >>> L = [1,2,3,4] >>> L[:] = [0,1] # 因此L[:] = [0,1] 時,替換原有的列表,生成新的列表。 >>> L [0, 1] >>> L = [1,2] >>> L[1:1] = [3.1,3.4] #實現中間插入[3.1, 3.2] >>> L [1, 3.1, 3.4, 2] >>> >>> L = [1,2,3,4] >>> L[0:0] = [0,1] #實如今前面插入[0,1] >>> L [0, 1, 1, 2, 3, 4] >>> >>> L = [1,2,3,4] >>> L[3:3] = [5,6] #實如今後面插入[5, 6] >>> L [1, 2, 3, 5, 6, 4] >>> >>> L = [1,5] >>> L[1:1] = range(2,5) #用range函數生成的可迭代對象賦值 >>> L [1, 2, 3, 4, 5] >>> >>> L = [1,2,3,4,5] >>> L[1:2] = "ABCDE" # "ABCD"也是可迭代對象 >>> L [1, 'A', 'B', 'C', 'D', 'E', 3, 4, 5] >>>
切片賦值的注意事項:
對於步長不等於1的切片賦值,賦值運算符右側的可迭代對象提供的元素個數必定要等於切片切除的段數。
>>> L = [1,2,3,4,5,6] >>> L[::2] = "ABC" >>> L ['A', 2, 'B', 4, 'C', 6] >>> L = [1,2,3,4,5,6] >>> L[::2] = "ABCDE" #切出三段,但給出5個元素填充是錯的(報錯) Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: attempt to assign sequence of size 5 to extended slice of size 3 >>>
del語句: 用於刪除列表中的元素
語法:
del 序列[整數表達式]
del 序列[切片]
>>> L = [1,2,3,4,5,6] >>> del L[-1] #表示刪除最後一個 >>> L [1, 2, 3, 4, 5] >>> del L[0] #刪除第一個 >>> L [2, 3, 4, 5]
python3中常有於序列的函數
Python包含如下函數:
序號 | 函數 |
---|---|
1 | cmp(list1, list2) 比較兩個列表的元素 |
2 | len(list) 列表元素個數 |
3 | max(list) 返回列表元素最大值 |
4 | min(list) 返回列表元素最小值 |
5 | list(seq) 將元組轉換爲列表 |
len(seq) 返回容器的元素個數
>>> L = [1,2,3,4,5,6] >>> len(L) 6
max(x) 返回序列的最大值元素
>>> L = [1,2,3,4,5,6] >>> max(L) 6
min(x) 返回序列的最小值元素
>>>L = [1,2,3,4,5,6] >>> min(L) 1
sum(x) 返回序列中全部元素的和(元素必須是數值類型)
>>> L = [1,2,3,4,5,6] >>> sum(L) 21
any(x) 真值測試,若是容器內其中一個值爲True則返回True,不然返回False
all(x) 真值測試,容器內全部元素的布爾值爲True才返回True
Python包含如下方法:
序號 | 方法 |
---|---|
1 | list.append(obj) 在列表末尾添加新的對象 >>> L = [] #定義空列表 >>> for i in range(10): #生成’0-9‘的數字 ... L.append(i) #追加到L空列表中 ... >>> print(L) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] #獲得新的列表 >>> |
2 | list.count(obj) 統計某個元素在列表中出現的次數 >>> L = [1,2,3,1,3,5,6,3,8] >>> L.count(1) #統計‘1’在列表中出現過幾回 2 >>> L.count(3) #統計‘3’在列表中出現過幾回 3 >>> L.count(8) #統計‘8’在列表中出現過幾回 1 >>> |
3 | list.extend(seq) 在列表末尾一次性追加另外一個序列中的多個值(用新列表擴展原來的列表) >>> L = [1,2,3] #列表1 >>> L2 = [4,5,6] #列表2 >>> L.extend(L2) #把列表2中的全部值一次性追加到列表1中 >>> L [1, 2, 3, 4, 5, 6] #生成新列表 >>> |
4 | list.index(obj) 從列表中找出某個值第一個匹配項的索引位置 >>> L = [1,2,3,4,5,6] # >>> L.index(1) #返回列表中‘1’所對應的索引位置 0 >>> L.index(2) #返回列表中‘2’所對應的索引位置 1 >>> L.index(3) #返回列表中‘3’所對應的索引位置 2 >>> L.index(6) #返回列表中‘6’所對應的索引位置 5 |
5 | list.insert(index, obj) 將對象插入列表 >>> L = [1,2,3,4] >>> L.insert(2,8) #在列表中的第二個索引處插入‘8’ >>> L [1, 2, 8, 3, 4] >>> L.insert(0,10) #在列表中的‘0’索引處插入‘8’ >>> L [10, 1, 2, 8, 3, 4] >>> |
6 | list.pop(obj=list[-1]) 移除列表中的一個元素(默認最後一個元素),而且返回該元素的值 >>> L = [1,2,3,4,5,6] #原列表 >>> L.pop() #pop方法不加索引,默認刪除最後一個元素,並返回刪除元素的值 6 >>> L [1, 2, 3, 4, 5] #刪除後的列表 >>> L.pop(2) #加全部‘2’後,刪除索引第二處的元素,並打印出來 3 >>> L [1, 2, 4, 5] #刪除後的新列表 >>> |
7 | list.remove(obj) 移除列表中某個值的第一個匹配項 >>> L = [1,2,3,1,5,6,2,8,6,9] #原列表 >>> L.remove(1) #刪除列表中從左至右第一個‘1’元素,有多個一樣的元素也只會刪除一次 >>> L [2, 3, 1, 5, 6, 2, 8, 6, 9] >>> L.remove(9) #刪除列表中從左至右第一個‘9’元素,有多個一樣的元素也只會刪除一次 >>> L [2, 3, 1, 5, 6, 2, 8, 6] #刪除列表中從左至右第一個‘1’元素,有多個一樣的元素也只會刪除一次 >>> L.remove(1) >>> L [2, 3, 5, 6, 2, 8, 6] >>> |
8 | list.reverse() 反向列表中元素,列表的反轉,用來改變原列表的前後順序 >>> L = [1,2,3,4,5,6] >>> L.reverse() #默認將列表反轉,用來改變原列表的前後順序 >>> L [6, 5, 4, 3, 2, 1] >>> |
9 | list.sort([func]) 對原列表進行排序,將列表中的元素進行排序,默認順序按值的大到小的順序排列 >>> L = [12,24, 30, 100, 5, 6, 88] #原列表 >>> L.sort() #默認sort方法 >>> L [5, 6, 12, 24, 30, 88, 100] #的到從小到大排序的新列表 >>> L.sort(reverse=False) #也能夠加'reverse=False' 也是從小到大排序的新列表 >>> L [5, 6, 12, 24, 30, 88, 100] >>> L.sort(reverse=True) # ‘reverse=True’改用reverse=True的話是從大到小排序。 >>> L [100, 88, 30, 24, 12, 6, 5] >>> |