Python list常用方法

2021-09-26 02:19:16 字數 4331 閱讀 1043

除前面章節介紹的增加元素、刪除元素、修改元素方法之外,列表還包含了一些常用的方法。

例如,在互動式直譯器中輸入 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 在指定位置新增元素,如果指定的下標不存在...