首頁 > 軟體

python中列表的常見操作梳理總結(一)

2022-07-17 14:00:37

python中列表的常見操作

列表元組的簡單操作

前面我們已經學過了關於len()函數、賦值運運算元及身份運運算元的使用,下面簡單回顧一下這些在列表/元組上的應用

列表/元組的長度

前面已經介紹了len()函數的使用,注意,len()函數可以對除數位型別之外的任何資料型別使用,返回長度

例子:

列表/元組之間的累加與乘法

無論是累加還是乘法,都是生成了一個新的列表

用法:

# 累加
new_list = list1 + list2
new_tuple = tuple1 + tuple2
new_list += ['test']

# 乘法
new_list = list1 * 10
new_tuple = tuple * 10
new_tuple *= 10

例子:

判斷列表/元組中是否包含某元素

innot in的使用:

例子:

列表的append()函數

將一個元素新增到列表的末尾

list.append(new_item)  # new_item是新增到列表的新元素,new_item是任意資料型別

被新增的元素只會被新增到末尾

append函數是在原有列表的基礎上新增,不需要額外新增新的變數

例子:可以看到使用append後,變數的記憶體地址不變,還是那個變數

注意:append的引數只能傳入一個,否則會報錯:

列表的insert()函數

將一個元素插入到列表的指定位置,被插入的位置後面的元素往後順延

# indexs是新元素放在哪個位置(整型)
# new_item是新增到列表的新元素,new_item是任意資料型別
list.insert(index,new_item)  

如果insert傳入的位置在列表中不存在,則將新元素新增到列表結尾

注意:字串/列表/元組的元素位置都是從0開始的,即我們看到的第一個元素的位置是0,看到的第二個元素的位置是1

例子:

列表的count()函數

返回列表的元素個數

item_count = list.count(item)  # item是想要查詢個數的元素

count()同樣也可以查詢元組的元素個數

如果查詢的元素不存在,則返回0

例子:

列表的remove()函數

刪除列表中的某個元素

list.remove(item)  # item是想要刪除的元素

如果刪除的元素在列表中不存在,會直接報錯

如果刪除的元素有多個,只會刪除一個

例子:

擴充套件:python中的內建函數del

del函數會將變數從記憶體中刪除:

列表的reverse()函數

將列表中元素的順序反轉

list.reverse()  # 括弧內不需要傳參

例子:

列表的sort()函數

將列表中的元素按照一定規律進行排序

list.sort(cmp=None,key=None,reverse=False) 
# cmp---可選引數,制定排序方案的函數
# key---引數比較
# reverse---排序規則,True為降序,False為升序(預設)

前兩個引數涉及函數的學習,本次只介紹reverse引數,另外兩個引數不傳

例子:

列表中的元素資料型別必須相同,否則無法排序會報錯:

正常是按首字母排序,如果首字母中有大寫字母,則排在小寫字母后面:

列表的clear()函數

將列表中的元素清空

list.clear()  # 括弧內不需要填引數

例子:

思考:再次給變數定義個空列表,和用clear()函數將列表清空的區別?

答:再次給變數定義空列表,系統需要先將原有的變數刪除(因為判斷不需要再使用這個變數了),然後再建立一個變數存入記憶體;而用clear()函數是直接在已存在的變數上操作,更加節省時間資源。

列表的copy()函數

將列表複製一份相同的列表,並賦值給新的變數。兩個列表的記憶體空間不同

list.copy()  # 括弧內不需要填引數

例子:

思考:copy與二次賦值的區別?

答:二次賦值的變數與原始變數享有相同的記憶體空間,所以資料也是共用的,改變一個,另外一個也會發生改變;而copy建立的列表與原始列表不是一個記憶體空間:

擴充套件:關於淺拷貝&深拷貝

淺拷貝:

如果有一個列表a,列表裡巢狀了列表,拷貝a列表建立出b列表,a或b列表裡的二層列表發生變化,也會影響b或a的二層列表變化

深拷貝copy.deepcopy()

不僅對第一層資料進行了copy,對深層的資料也進行copy,原始變數和新變數完完全全不共用資料:

列表的extend()函數

將其他列表或元組中的元素匯入到當前列表中

list.extend(iterable)  # iterabal代表列表或元組

例子:

其實extend()函數的引數也可以傳入字串和列表,只不過字串的字元會被單個拆開作為列表元素匯入,而字典則會只取到key作為列表元素匯入:

到此這篇關於python中列表的常見操作梳理總結(一)的文章就介紹到這了,更多相關python列表操作內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com