Python列表常用函數(shù)使用詳解
介紹?
append()
語法
list.append( element )
參數(shù)
element:任何類型的元素
列表「末尾」添加元素
name_list = ['zhangsan', 'lisi', 'wangwu'] name_list.append('zhaoliu') print(name_list)
輸出:
['zhangsan', 'lisi', 'wangwu', 'zhaoliu']
列表末尾可添加 「任意類型」數(shù)據(jù),比如在列表中添加列表
name_list = ['zhangsan', 'lisi', 'wangwu'] name_list.append([1,2,3]) print(name_list)
輸出:
['zhangsan', 'lisi', 'wangwu', [1, 2, 3]]
append() 函數(shù)添加的是「地址」,當(dāng)被添加的列表發(fā)生變化時,添加后的列表也會 「同步變化」
list1 = ['zhangsan'] a = [1,2,3] list1.append(a) # 列表list1添加列表a print(list1) a.append(4) # 列表a發(fā)生變化 list1.append(a) print(list1) # 列表list1也會同步變化
輸出:
['zhangsan', [1, 2, 3]]
['zhangsan', [1, 2, 3, 4], [1, 2, 3, 4]]
補充兩個概念:
- 淺拷貝:拷貝這個對象的引用
- 深拷貝:拷貝對象的內(nèi)容
「深拷貝」可解決 append() 函數(shù)添加列表的同步問題
list1 = ['zhangsan'] a = [1,2,3] list1.append(copy.deepcopy(a)) # 深拷貝列表a print(list1) a.append(4) # 列表a發(fā)生變化 list1.append(copy.deepcopy(a)) # 深拷貝列表a print(list1) # 列表list1不再同步變化
輸出:
['zhangsan', [1, 2, 3]]
['zhangsan', [1, 2, 3], [1, 2, 3, 4]]
append() 函數(shù)和 extend() 函數(shù)的區(qū)別
1.append() 添加的是元素「引用」,而 extend() 添加的是元素的「值」
2.append() 可以添加「任意類型」元素,而 extend() 只能添加「序列」
比如,添加列表時, append() 會添加整個列表,而 extend() 只會添加列表中的值
list1 = ['zhangsan', 'lisi', 'wangwu'] list2 = ['zhangsan', 'lisi', 'wangwu'] list1.append([1,2,3]) print('append添加整個列表:', list1) list2.extend([1,2,3]) print('extend添加列表的值:', list2)
輸出:
append添加整個列表: ['zhangsan', 'lisi', 'wangwu', [1, 2, 3]]
extend添加列表的值: ['zhangsan', 'lisi', 'wangwu', 1, 2, 3]
extend()
語法
list.extend(iterable)
參數(shù)
iterable:任何可迭代對象(列表、元祖等)
向列表 「末尾」添加列表內(nèi)容
list1 = ['zhangsan', 'lisi', 'wangwu'] list1.extend([1,2,3]) # 列表末尾添加列表 print(list1) list1.extend((4,5,6)) # 列表末尾添加元祖 print(list1)
輸出:
['zhangsan', 'lisi', 'wangwu', 1, 2, 3]
['zhangsan', 'lisi', 'wangwu', 1, 2, 3, 4, 5, 6]
Python中的 「字符串」本質(zhì)上也是一種數(shù)組,屬于可迭代對象,可以使用 extend() 添加
list1 = ['zhangsan', 'lisi', 'wangwu'] list1.extend('abc') # 列表末尾添加字符串 print(list1)
輸出:
['zhangsan', 'lisi', 'wangwu', 'a', 'b', 'c']
insert()
語法
list.insert( index, element)
參數(shù)
- index:數(shù)字,指定插入的位置
- element:任意類型,需要插入的元素
insert() 函數(shù)可以添加「任意類型」
list1 = ['zhangsan', 'lisi'] list1.insert(2, 2) # 添加整形 print(list1) list1.insert(3, 'str') # 添加字符串 print(list1) list1.insert(4, [1,2,3]) # 添加列表 print(list1) list1.insert(5, (4,5,6)) # 添加字典 print(list1)
輸出:
['zhangsan', 'lisi', 2]
['zhangsan', 'lisi', 2, 'str']
['zhangsan', 'lisi', 2, 'str', [1, 2, 3]]
['zhangsan', 'lisi', 2, 'str', [1, 2, 3], (4, 5, 6)]
insert同樣存在 「列表同步」問題,改為 「軟拷貝」即可
list1 = ['zhangsan', 'lisi'] a = [1,2,3] list1.insert(2, a) # 添加列表a print(list1) a.append(4) # 列表a發(fā)生變化 print(list1) # 列表同步發(fā)生變化
輸出:
['zhangsan', 'lisi', [1, 2, 3]]
['zhangsan', 'lisi', [1, 2, 3, 4]]
pop()
語法
list.pop( index )
參數(shù)
- index:數(shù)字,需要刪除的索引位置,默認(rèn)值-1
- 返回值:刪除的值
不傳參數(shù)時,默認(rèn)刪除「最后」一個值
list1 = [1, 2, 3, 4] list1.pop() print(list1)
輸出:
[1, 2, 3]
刪除 「指定」位置的元素
list1 = [1, 2, 3, 4] list1.pop(1) # 刪除第二個值 print(list1)
輸出:
[1, 3, 4]
「返回」被刪除的元素
list1 = [1, 2, 3, 4] a = list1.pop(1) # 刪除第二個值,并返回被刪除的值 print(a)
輸出:
2
remove()
語法
list.remove( element )
參數(shù)
element:任意數(shù)據(jù)類型
remove() 函數(shù)刪除「普通類型」元素
list1 = ['zhangsan', 'lisi', 1, 2] list1.remove(1) # 刪除數(shù)字 print(list1) list1.remove('zhangsan') # 刪除字符串 print(list1)
輸出:
['zhangsan', 'lisi', 2]
['lisi', 2]
remove() 函數(shù)刪除 「對象類型」元素
list1 = [1, 2, [3, 4], (5, 6)] a = [3, 4] b = (5, 6) list1.remove(a) # 刪除列表類型 print(list1) list1.remove(b) # 刪除元祖類型 print(list1)
輸出:
[1, 2, (5, 6)]
[1, 2]
remove() 函數(shù)刪除對象類型的「前提」是,列表中的元素是對象類型,以下這種方式會報錯
list1 = [1, 2, 3, 4, 5] list1.remove([1,2])
輸出:
Traceback (most recent call last):
? File "E:/data/PrCharm/test1/55.py", line 2, in <module>
? ? list1.remove([1,2])
ValueError: list.remove(x): x not in list
# 值錯誤: 需要刪除的值不在列表中
remove() 函數(shù)「一次」只能刪除一維數(shù)組中的「一個」元素,自己刪自己也不行
list1 = [1, 2, 3, 4, 5] print('我自己在我自己里面嗎?', list1 in list1) list1.remove(list1)
輸出:
Traceback (most recent call last):
? File "E:/data/PrCharm/test1/55.py", line 3, in <module>
? ? list1.remove(list1)
ValueError: list.remove(x): x not in list
我自己在我自己里面嗎? False
到此這篇關(guān)于Python列表常用函數(shù)使用詳解的文章就介紹到這了,更多相關(guān)Python列表常用函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python3實現(xiàn)Dijkstra算法最短路徑的實現(xiàn)
這篇文章主要介紹了python3實現(xiàn)Dijkstra算法最短路徑的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-05-05Python如何在windows環(huán)境安裝pip及rarfile
這篇文章主要介紹了Python如何在windows環(huán)境安裝pip及rarfile,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-06-06使用torchtext導(dǎo)入NLP數(shù)據(jù)集的操作
這篇文章主要介紹了使用torchtext導(dǎo)入NLP數(shù)據(jù)集的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-05-05解決python 在for循環(huán)并且pop數(shù)組的時候會跳過某些元素的問題
這篇文章主要介紹了解決python 在for循環(huán)并且pop數(shù)組的時候會跳過某些元素的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-12-12Python Numpy實現(xiàn)修改數(shù)組形狀
NumPy(Numerical Python)是Python中用于處理數(shù)組和矩陣的重要庫,它提供了豐富的功能,用于科學(xué)計算,本文主要介紹了如何使用NumPy提供的方法來改變數(shù)組的形狀,感興趣的可以了解下2023-11-11Python?Requests?基本使用及Requests與?urllib?區(qū)別
在使用Python爬蟲時,需要模擬發(fā)起網(wǎng)絡(luò)請求,主要用到的庫有requests庫和python內(nèi)置的urllib庫,一般建議使用requests,它是對urllib的再次封裝,今天通過本文給大家講解Python?Requests使用及urllib區(qū)別,感興趣的朋友一起看看吧2022-11-11Python爬蟲運用正則表達(dá)式的方法和優(yōu)缺點
這篇文章主要給大家介紹了關(guān)于Python爬蟲運用正則表達(dá)式的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Python具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08