除前面章節介紹的增加元素、刪除元素、修改元素方法之外,列表還包含了一些常用的方法。
例如,在互動式直譯器中輸入 dir(list) 即可看到列表包含的所有方法,如下所示:
>>> dir(list)
>>>
在上面輸出結果中己經剔除了那些以雙下畫線開頭的方法。按照約定,這些方法都具有特殊的意義,不希望被使用者直接呼叫。
上面有些方法前面己經介紹過了,接下來給大家介紹另外的一些常用方法。
此方法用於統計列表中某個元素出現的次數,其基本語法格式為:
listname.count(obj)
其中,listname 代表列表名,obj 表示判斷是否存在的元素。
下面**示範了 count() 方法的用法:
a_list = [2, 30, 'a', [5, 30], 30]
# 計算列表中30的出現次數
print(a_list.count(30))
# 計算列表中[5, 30]的出現次數
print(a_list.count([5, 30]))
執行結果為:
2
1
index() 方法用於定位某個元素在列表**現的位置(也就是索引),如果該元素沒有出現,則會引發 valueerror 錯誤。
此方法的基本語法格式為:
listname.index(obj,start,end)
同 count() 方法不同,index() 方法還可傳入 start、end 引數,用於在列表的指定範圍內搜尋元素。
如下**示範了 index() 方法的用法:
a_list = [2, 30, 'a', 'b', 'crazyit', 30]
# 定位元素30的出現位置
print(a_list.index(30))
# 從索引2處開始、定位元素30的出現位置
print(a_list.index(30, 2))
# 從索引2處到索引4處之間定位元素30的出現位置,因為找不到該元素,會引發 valueerror 錯誤
print(a_list.index(30, 2, 4))
執行結果為:
1
5traceback (most recent call last):
file "c:\users\mengma\desktop\1.py", line 7, in print(a_list.index(30, 2, 4)) # valueerror
valueerror: 30 is not in list
pop() 方法會移除列表中指定索引處的元素,如果不指定,缺省會移除列表中最後乙個元素。該方法的基本語法格式為:
listname.pop(index)
例如:
a_list=[1,2,3]
#移除列表的元素 3
print(a_list.pop())
print(a_list)
#移除列表中索引為 0 的元素1
print(a_list.pop(0))
print(a_list)
執行結果為:
3
[1, 2]
1[2]
stack =
# 向棧中「入棧」3個元素
print(stack) # ['fkit', 'crazyit', 'charlie']
# 第一次出棧:最**棧的元素被移出棧
print(stack.pop())
print(stack) # ['fkit', 'crazyit']
# 再次出棧
print(stack.pop())
print(stack) # ['fkit']
執行結果為:
['fkit', 'crazyit', 'charlie']
charlie
['fkit', 'crazyit']
crazyit
['fkit']
上面程式中,第 8 行實現了第一次出棧操作,該操作將會把最後一次新增的元素移出棧,且該方法會返回出棧的元素。因此,執行這行**將會看到輸出 charlie。
與所有程式語言類似的是,出棧操作既會移出列表的最後乙個元素,也會返回被移出的元素。
reverse() 方法會將列表中所有元素反向存放。該方法的基本語法格式為:
listname.reverse()
例如:
a_list = list(range(1, 8))
# 將a_list列表元素反轉
a_list.reverse()
print(a_list)
執行結果為:
[7, 6, 5, 4, 3, 2, 1]
從上面的執行結果可以看出,呼叫 reverse() 方法將反轉列表中的所有元素。
sort() 方法用於對列表元素進行排序,排序後原列表中的元素順序會方發生改變。sort() 方法的語法格式如下:
listname.sort(key=none, reserse=false)
可以看到,和其他方法不同,此方法中多了 2 個引數,它們的作用分別是:
例如如下**:
a_list = [3, 4, -2, -30, 14, 9.3, 3.4]
# 對列表元素排序
a_list.sort()
print(a_list)
b_list = ['python', 'swift', 'ruby', 'go', 'kotlin', 'erlang']
# 對列表元素排序:預設按字串包含的字元的編碼大小比較
b_list.sort()
print(b_list) # ['erlang', 'go', 'kotlin', 'python', 'ruby', 'swift']
執行結果為:
[-30, -2, 3, 3.4, 4, 9.3, 14]
['erlang', 'go', 'kotlin', 'python', 'ruby', 'swift']
如下**示範了 key 和 reverse 引數的用法:
b_list = ['python', 'swift', 'ruby', 'go', 'kotlin', 'erlang']
# 指定key為len,指定使用len函式對集合元素生成比較的鍵,也就是按字串的長度比較大小
b_list.sort(key=len)
print(b_list)
# 指定反向排序
b_list.sort(key=len, reverse=true)
print(b_list)
執行結果為:
['go', 'ruby', 'swift', 'python', 'kotlin', 'erlang']
['python', 'kotlin', 'erlang', 'swift', 'ruby', 'go']
除此之外,需要指出的是,在 python 2.x 中,列表的 sort() 方法還可傳入乙個比較大小的函式,該函式負責比較列表元素的大小。該函式包含兩個引數,當該函式返回正整數時,代表該函式的第乙個引數大於第二個引數;當該函式返回負整數時,代表該函式的第乙個引數小於第二個引數;返回 0,則意味著兩個引數相等。
下面**示範了使用比較函式呼叫 sort() 方法。以下**只能在 python 2.x 中執行:
# 以下**只能在python 2.x中執行
# 定義乙個根據長度比較大小的比較函式
def len_cmp(x, y):
# 下面**比較大小的邏輯是:長度大的字串就算更大
return 1 if len(x) > len(y) else (-1 if len(x) < len(y) else 0)
b_list = ['python', 'swift', 'ruby', 'go', 'kotlin', 'erlang']
b_list.sort(len_cmp)
print(b_list)
執行結果為:
['go', 'ruby', 'swift', 'erlang', 'kotlin', 'python']
python list常用方法
空列表 li 用逗號分割,裡面可以新增任意型別元素 li 1,2,aaa 4,5,6,7 li 1,2,3,4,5 for i in li print i,end t 1 2 3 4 5 索引值可以為負數,代表倒數第幾個元素 li 1,2,3,4,5 print li 2 4for i in ran...
Python list常用方法
求列表的長度,即列表元素個數 a 1 2,3 4 len a 4value 需要統計的元素 統計列表裡某個元素的個數,如果元素不存在,則返回0 a s u n s o n g a.count s 2 a.count p 0value 需要新增的元素 新增元素到列表尾部 a shanghai a sh...
python list 常用方法總結
參考 只要把逗號分隔的不同的資料項使用方括號 括起來即可 下標 角標,索引 從0開始,最後乙個元素的下標可以寫 1 list1 a aa aaa aaaa aaa list1 空列表 aaaa 在list 末尾增加乙個元素 list insert 2 ccc 在指定位置新增元素,如果指定的下標不存在...