串列是python中內置的資料結構,它的表現形式為方括號中不同資料的集合,用逗號分隔開,串列可以用來存盤相同資料型別或不同資料型別,
串列是可變的,這也是它如此常用的原因,然而在某些情況下,可變性需要特別注意,
本文介紹了11個關于python 串列的重要操作,幫助你更好的掌握串列,
1.從串列洗掉元素的三種方法
(1)del
del可以根據索引位置,洗掉某個元素,也可以設定索引范圍洗掉,亦可以洗掉整個串列,沒有回傳值
洗掉單個元素
a = [1, 2, 'x', 4, 5] del(a[0]) print(f'a is {a}')
輸出
a is [2, 'x', 4, 5]
范圍洗掉元素
a = [1, 2, 'x', 4, 5] del (a[0:2]) print(f'a is {a}')
輸出
a is ['x', 4, 5]
洗掉整個串列
a = [1, 2, 'x', 4, 5] del (a[:]) print(f'a is {a}') # 按索引范圍洗掉整個串列的元素,將輸出一個空串列a is [] a = [1, 2, 'x', 4, 5] del (a) print(f'a is {a}') # name 'a' is not defined 沒有回傳值,報錯找不到物件
(2)remove
remove()函式用于移除串列中某個值的第一個匹配項,沒有回傳值
例子
a = [1, 2, 'x', 4, 5,] a.remove('x') print(f'a is {a}')
輸出
a is [1, 2, 4, 5]
注意:只會洗掉第一個匹配值,如有重復將不會洗掉
a = [1, 2, 'x', 4, 5,'x'] a.remove('x') print(f'a is {a}')
輸出:
a is [1, 2, 4, 5, 'x']
(3)pop
pop() 函式用于移除串列中的一個元素(默認最后一個元素),并且回傳該元素的值,
例子
a = [1, 2, 'x', 4, 5] b = a.pop() print(f'a is {a}') print(f'b is {b}')
輸出
a is [1, 2, 'x', 4] b is 5
我們可以指定洗掉元素的索引值,不能超過串列總長度,
a = [1, 2, 'x', 4, 5] b = a.pop(0) print(f'a is {a}')
輸出
a is [2, 'x', 4, 5]
2.串列的添加,擴展,插入
(1)append
append() 函式用于在串列末尾添加新的物件,
a = [1, 2] a.append(3) print(a)
輸出
[1, 2, 3]
可以是任何資料型別,被追加的元素在串列中保持著原結構型別
a = [1, 2] b = ['x', 'y', 'z'] a.append(b) print(a)
輸出
[1, 2, ['x', 'y', 'z']]
串列b成為了串列a中的第三項,如果你想創建一個串列是a,b串列中元素的組合a =(1, 2, 'x', 'y', 'z'),則需要使用extend()函式或者"+“,
(2)extend
extend() 函式用于在串列末尾一次性追加另一個序列中的多個值(用新串列擴展原來的串列),
a = [1, 2] b = ['x', 'y', 'z'] a.extend(b) print(a)
輸出
[1, 2, 'x', 'y', 'z']
(3)insert
insert() 函式也用于向串列中添加元素,但是,它允許指定新元素的索引,例如,我們可以在串列的開頭添加一個新元素
a = [1, 2, 3, 4, 5] a.insert(0, 'a') print(a)
輸出
['a', 1, 2, 3, 4, 5]
insert()中的第一個引數是索引,第二個是插入的物件
3.用”=“復制串列
我們可以復制一個串列并創建一個新的變數,
a = [1, 2, 3] b = a print(b)

但是,新變數“ b”只是指向“ a”值的指標, 因此,a的任何變化也會改變b, 讓我們添加一個值來確認,
a = [1, 2, 3] b = a a.append(4) print(a) print(b)
輸出
[1, 2, 3, 4]
[1, 2, 3, 4]
4.使用索引復制串列
我們可以通過選擇串列的所有索引來復制串列,
a = [1, 2, 3] b = a[:] print(b)

新的串列b包含與a相同的值,但在不同的記憶體位置,如果我們改變a,b不會受到影響,
a = [1, 2, 3] b = a[:] a.append(4) print(a) print(b)
輸出
[1, 2, 3, 4]
[1, 2, 3]
使用copy()函式復制串列的作業原理與使用索引復制相同,
a = [1, 2, 3] b = a.copy() a.append(4) print(a) print(b)
輸出
[1, 2, 3, 4]
[1, 2, 3]
5. 用sort()和sorted()對串列進行排序,
sort和sorted函式都可以用來對串列進行排序,
- sort():對串列進行排序,但不回傳任何內容,
- sorted():回傳串列的排序副本,但不對原始串列進行排序,
sort()
a = [2, 0, 4, 3] b = a.sort() print(a) print(b)

輸出
[0, 2, 3, 4]
None
用sorted()函式做同樣的例子,
a = [2, 0, 4, 3] b = sorted(a) print(a) print(b)

輸出
[2, 0, 4, 3]
[0, 2, 3, 4]
6. 通過復制創建嵌套串列
在通過復制創建一個嵌套的串列時,我們需要注意元素的變化,原串列元素的任何修改都會改變被復制的串列,
a = [1, 2] b = ['x', 'y'] c = [a, b] a.append(3) b.pop() print(a) print(b) print(c)
串列c由串列a和串列b組成,我們通過添加和洗掉一個元素更新了串列a和串列b,因此,串列c也被更新了,

輸出
[1, 2, 3] ['x'] [[1, 2, 3], ['x']]
未完待續...
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/206932.html
標籤:其他
