11個python列表方法全面解析!

2020-12-05 CDA數據分析師

來源:AI入門學習

列表是python裡很重要的數據類型,其中的方法總共有11個,數量掌握這些方法,對數據的處理效率會大大提高,現在分享給大家。

print(dir(list()))#查看列表的方法

[ ..., 'append', 'clear', 'copy', 'count', 'extend', 'index',

'insert', 'pop', 'remove', 'reverse', 'sort']

01、append()方法

描述:append() 方法在列表ls最後(末尾)添加一個元素object

語法:ls.append(object) object為要添加的元素。

參數:object可以添加 列表,字典,元組,集合,字符串等。

#append()函數的操作對象是原列表。ls = [1,2,3,4,5,6]

ls.append(12)#添加元素

print(ls)

[1, 2, 3, 4, 5, 6, 12]

ls.append([1,"a"]) #添加列表

print(ls)

[1, 2, 3, 4, 5, 6, 12, [1, 'a']]

ls.append({2:"a",3:"hj"}) #添加字典

print(ls)

[1, 2, 3, 4, 5, 6, 12, [1, 'a'], {2: 'a', 3: 'hj'}]

ls.append((1,"k",3)) #添加元組

print(ls)

[1, 2, 3, 4, 5, 6, 12, [1, 'a'], {2: 'a', 3: 'hj'}, (1, 'k', 3)]

ls.append({"1","2","h"}) #添加集合

print(ls)

[1, 2, 3, 4, 5, 6, 12, [1, 'a'], {2: 'a', 3: 'hj'}, (1, 'k', 3), {'2', 'h', '1'}]

ls.append("123abc") #添加字符串

print(ls)

[1, 2, 3, 4, 5, 6, 12, [1, 'a'], {2: 'a', 3: 'hj'}, (1, 'k', 3), {'2', 'h', '1'}, '123ab

02、clear()方法

描述:刪除列表ls中的所有元素。

語法:ls.clear()

ls = [1,2,3,"4",5,"a"]

ls.clear()

print(ls)

[]

03、copy()方法

描述:生成一個新列表,複製ls中的所有元素。

語法:ls.copy() -> list 返回一個列表

ls = [1,2,3,[4,5,6]]

lt = ls.copy() #lt複製ls中的所有元素

ls.clear() #刪除ls所有元素,lt中的元素沒有被刪除。

lk = ls #這不是複製,而是給列表ls新關聯一個引用,即增加一個別名,ls和lt指向同一個內存地址。

print(id(ls),id(lk))

print(lt)

print(ls)

04、count()方法

描述:統計列表ls中value元素出現的次數

語法:ls.count(value) -> integer 返回一個整數

參數:value--要統計的value元素。

ls = [1,2,3,5,4,5,5,5,5,"python"]

ls.count(5) #統計列表ls中 5 出現的次數

5

ls.count(0)#列表ls中無0元素

ls.count("python") #統計列表ls中 "python" 出現的次數。

05、extend()方法

描述:在列表ls末尾添加一個列表iterable。

語法:ls.extend(iterable) -> None 無返回值

參數:iterable -- 要添加的列表。可以是整個列表iterable,也可以是列表iterable的一部分。

注意:extend() 和 append() 的不同之處在於:extend() 不會把列表或者元祖視為一個整體,而是把它們包含的元素逐個添加到列表中

ls = [1,2,"a",[4,5,"a"]]

lt = [1,"abc","b",[1,2]]

ls.extend(lt) #返回值為空,將列表lt的元素添加到列表ls末尾。

print(ls.extend(lt))

None

print(ls)

[1, 2, 'a', [4, 5, 'a'], 1, 'abc', 'b', [1, 2], 1, 'abc', 'b', [1, 2]]

print(lt) #列表lt元素不變

[1, 'abc', 'b', [1, 2]]

06、index()方法

描述:列表ls中第一次出現元素value的位置。

語法:ls.index(value, start, stop) -> integer 返回一個整數

參數:

value —— 要查找的元素。star —— 索引的起始位置。stop —— 索引的結束位置。ls = [1,2,3,"a",3,5,"a",5,[1,7,"b"]]

ls.index("a") #返回列表ls中"a"第一次出現的位置。

2

ls.index("a",4) #索引的起始位置為下標為4的元素,索引範圍為 3, 5, 'a', 5, [1, 7, 'b'

6

ls.index("a",4,8) #索引的起始位置為下標為4的元素,結束位置為下標為7的元素。索引範圍 3, 5, 'a', 5

6

07、insert()方法

描述:在列表第index位置,添加元素object。

語法:ls.insert(index, object)

index —— 元素object插入列表ls的位置。

objece —— 將要添加的元素。可以是列表,元組,字典,集合,字符串等。

ls = [1,2,"a",["a",5,8]]

ls.insert(3,"b")#在列表ls下標為3的位置插入元素 "b"

print(ls)

[1, 2, 'a', 'b', 'b', ['a', 5, 8]]

ls.insert(3,1) #在列表ls下標為3的位置插入元素 1

print(ls)

[1, 2, 'a', 1, 'b', 'b', ['a', 5, 8]]

ls.insert(1,['a', 5, 8]) #在列表ls的內嵌套列表["a",5,8]

print(ls)

[1, ['a', 5, 8], 2, 'a', 1, 'b', 'b', ['a', 5, 8]]

ls = [1,2,3]

ls.insert(0,[1,2,3]) #插入列表

ls.insert(0,(1,2,3)) #插入元組

ls.insert(0,{1:"a",2:"b"}) #插入字典

ls.insert(0,{1,2,3}) #插入集合

print(ls)

[{1, 2, 3}, {1: 'a', 2: 'b'}, (1, 2, 3), [1, 2, 3], 1, 2

08、pop()方法

描述:將列表ls中第index項元素取出,並從列表ls中刪除該元素。若果省略index,則默認刪除列表最後(末尾)一個元素,並返回該元素。

語法: ls.pop(index) -> item 返回刪除的項

參數: index -- 要取出並刪除的元素下標的序數。

ls = [1,2,"a","y",[1,2,3],"b"]

ls.pop(0)#取出下標為0的元素,並從列表ls中刪除。

1

print(ls)

[2, 'a', 'y', [1, 2, 3], 'b']

ls.pop() #默認取出列表ls最後一個元素,並刪除。

'b'

print(ls)

[2, 'a', 'y', [1, 2, 3]

09、remove()方法

描述:將列表ls中出現的第一個元素value刪除。

語法:ls.remove(value) -> None 返回值為空

參數:value -- 要刪除的元素。

ls1 = [1,2,"a",3,1,1,55,"a,1"]

ls2 = [1,2,"a",3,1,1,55,"a,1"]

ls1.remove(1) #刪除ls1中第一次出現的元素 1

ls2.remove("a") ##刪除ls2中第一次出現的元素 "a"

print(ls1.remove(1)) #返回值為空

print(ls1)

print(ls2)

10、reverse()方法

描述:將列表ls中的元素反轉。

語法:ls.reverse()

ls1 = [1,2,3,4,5,6,7,8,9]

ls1.reverse() #將列表ls1反轉輸出

print(ls1)

[9, 8, 7, 6, 5, 4, 3, 2, 1]

ls2 = [2,5,8,9,4,1,2,6,2,1,3]

ls2.sort(reverse=True) #ls2.sort()默認將列表ls2按從小到大的序數排列。

reverse=True 使排序後的列表反轉,reverse=False 則不反轉

print(ls2)

[9, 8, 6, 5, 4, 3, 2, 2, 2, 1, 1]

11、sort() 方法

描述:將原列表ls中的元素進行排序,意味著改變原來的列表,而不是返回一個列表

語法:ls.sort([key=None][,reverse=False])--無返回值,但是會對列表中的元素進行排序。

參數:

key-- 可選參數, 如果指定了該參數會使用該參數的方法進行排序。reverse-- 可選參數,是否反向排序,默認為False。ls = [1,3,7,2,4,5,6]

ls.sort()

print(ls)

[1, 2, 3, 4, 5, 6, 7]#原來的列表發生了改變

當用戶需要一個排列好的列表,同時又要保留原來的列表時,怎麼做

錯誤方法1:

ls = [1,3,7,2,4,5,6]

y = ls.sort()

print(y)

None

print(ls)

#錯誤方法2:

ls = [1,3,7,2,4,5,6]

y = lsy.sort()

print(ls)

[1, 2, 3, 4, 5, 6, 7]

print(y)

[1, 2, 3, 4, 5, 6, 7]

正確方法:

ls = [1,3,7,2,4,5,6]

y = ls[:]

y.sort()

print(ls)

[1, 3, 7, 2, 4, 5, 6]#舊的列表未改變

print(y)[1, 2, 3, 4, 5, 6, 7]#新的列表改變

另外一種獲取副本的方法,是用sorted() 函數

ls = [1,3,7,2,4,5,6]

y = sorted(ls)

print(y)

[1, 2, 3, 4, 5, 6, 7]

print(ls)

[1, 3, 7, 2, 4, 5, 6]#未發生改變

降序的方法,現用sort 或者 sorted() 然後用reverse()進行反轉

ls = [1,3,7,2,4,5,6]

y = sorted(ls)

y.reverse()

print(y)

[7, 6, 5, 4, 3, 2, 1]

當然,sort方法還有兩個參數,key和reverse

ls = ['a22112x','aaaba','xxvvv','5aa','wodesddddssd']

ls.sort(key=len)

print(ls)

['5aa', 'aaaba', 'xxvvv', 'a22112x', 'wodesddddssd']

##按a的個數進行排序

定義一個計算'a'的個數的函數

ls = ['1a22112x','2aaaba','3xxvvv','4b5aa','5wodesddddssd']

def a_fun(x):

return str(x).count('a')

ls.sort(key=a_fun)

print(ls)

['3xxvvv', '5wodesddddssd', '1a22112x', '4b5aa', '2aaaba']

ls = [1,3,7,2,4,5,6]

ls.sort(reverse=True)

[7, 6, 5, 4, 3, 2, 1]

相關焦點

  • python字符串、列表內的方法使用
    英文字母 8位 1個字節歐洲16位,2個字節中文24位,3個字節gbk:中文2個字節,英文字母1個字節。reverse()列如:X = ['bmw','audi','toyota','subaru']X.reverse()print(X)['subaru','toyota','audi''bmw']4.使用方法len()獲悉列表的長度 len列表名稱使用列表避免索引錯誤(1)索引超出列表範圍
  • python數據類型總結——列表
    python用列表或元組來幫助我們。python列表一系列元素組成一個集合,可能通過索引,對每個元素進行訪問。這種數據類型統稱為序列。在python中,字符串就是一種序列。,如下:字符串遍歷python嵌套列表列表中的若干元素也是列表,稱之為嵌套列表。
  • Python數據類型之列表list
    # 列表是python中最基本的數據結構,它是一個有序序列,序列中的每個元素都分配一個數字(位置,索引)# 1、我們可以使用 方括號,中括號[]來創建列表# 2、我們可以直接將序列放在list(seq)
  • Python列表和元組
    @Author :RunsenPython列表和元組總結什麼是列表和元組列表是動態的,長度大小不固定,可以隨意地增加、刪減或者改變而元組是靜態的,長度大小固定,無法增加刪減或者改變__sizeof__() 72 // 加入了元素 1 之後,列表為其分配了可以存儲 4 個元素的空間 (72 - 40)/8 = 4l.append(2) l.
  • Python之list列表數據類型講解
    前言在python中,list列表數據類型其實就是一個容器,可以放置大量元素的集合。同時,list列表也有很多特點和使用場景,本文主要講解list列表的函數方法。python常用方法1、append添加元素append()函數是將要添加的元素追加到列表的末尾。
  • python入門第四課:列表的排序、元素遍歷
    一、列表的排序有時候我們需要按升序或降序排列列表的元素,可以用sort()方法,sort方法默認是升序,如果加個參數,變成sort(reverse=True)就會按降序排列,見下面的代碼:Mylists = [2,58,64,21,33,5,8,9,4,15,23,45,60,88
  • 一日一技:從Python列表中刪除重複值
    使用Dict方法 從列表中刪除重複項使用for循環 從列表中刪除重複項使用列表推導式 從列表中刪除重複項使用Numpy unique()方法 從列表中刪除重複項。使用Pandas方法 從列表中刪除重複項使用enumerate()刪除重複值使用Set()方法從列表中刪除重複值要從列表中刪除重複值,可以使用內置函數set()。 set()方法可以返回不同的元素.
  • Python 三十大實踐、建議和技巧
    安裝IPython的指令是:pip3 install ipython4.列表解析式列表解析式可以用來替換通過loop來填充列表的醜陋方法,其基本語法是:[ expression for item in list if conditional ]一個非常基礎的例子,用於生成包含連續數字的列表:mylist = [i for i in
  • Python程式設計師最常犯的10個錯誤,你中招了嗎?
    鑑於此,本文列出了Python開發人員常犯的10個小錯誤,資深程序猿也難免會中招哦。在Python中,類變量是以字典形式進行內部處理,遵循方法解析順序(Method Resolution Order ,MRO)。因此,在上述代碼中,因為在類C中沒有找到屬性x,它就會從父類中查找x的值(儘管Python支持多重繼承,但上述代碼只存在一個父類A)。換句話說,C沒有獨立於類A的屬於自己的x。因此,C.x實際上指的是A.x。
  • Python2 已終結,入手Python 3,你需要這30個技巧
    這篇教程有 30 個你會喜歡的方法。勤勞的程式設計師們,這裡有 30 條使用 Python 時實用的建議和小技巧。你可以把讀這篇文章當做工作間隙的小憩,而且我保證你學到的東西會跟工作時一樣多。1.列表表達式有了列表表達式,你就不再需要用 for loop 來生成一個 list 了。其基本語法是這樣的:[ expression for item in list if conditional ]這就是一個生成包含一串數字的 list 的簡單例子。
  • python入門第三課:列表元素的訪問、增加、刪除與修改
    有多種方法可以添加元素,下面介紹兩種:第一種是在尾部添加元素,使用append()方法,見下面代碼,確實在尾部加入了新的元素『芒果』:fruits = ['蘋果','香蕉','橘子')3、從列表中刪除元素也有多種方法,下面介紹幾個函數,這些操作都是永久刪除的。
  • python入門第五課:數字列表的操作、列表切片與複製、元組的遍歷
    (1,11),可以輸出1到10,見下面的代碼:for value in range(1,11):print(value)上面代碼有個地方要特別注意,range函數內是(1,11),而不是(1,10),這裡很容易寫錯。
  • 詳解Python列表及其運算
    ● 掌握列表的聲明和賦值● 掌握列表元素的添加、更新、刪除、遍歷操作● 掌握列表的排序及比較操作Python列表是線性表的一種表示方式。一個列表是n個數據元素的有限序列(a1,a2,…,an)。元素之間是相鄰關係,即第i-1個元素領先於第i個元素,第i個元素領先於第i+1個元素。可以將第i-1個元素稱為第i個元素的直接前驅元素,第i+1個元素稱為第i個元素的直接後繼元素。表中元素的個數為表的長度,長度為0的表稱為空表。Python列表中所存儲元素的具體含義,在不同的情況下可以不同,它可以是一個數,也可以是字符串,甚至是更複雜的信息。
  • Python基礎學習之常用六大數據類型
    a = "hello python"也可以使用 「」" 創建多行字符串:a = """ hello python"""字符串可以通過下面方式進行截取或者連接:print (str[0:4]) 輸出第一個到倒數第四個的所有字符 print (str[0]) 輸出單字符 第1
  • Python數據類型串講(中)
    正序標識即由左往右,索引從0開始遞增,索引為0表示第一個元素,索引為1表示第二個元素,以此類推。以變量x='HELLO WORLD!'為例:逆序標識即由右往左,索引從-1開始,索引為-1表示逆序第一個元素,索引為-2表示逆序第二個元素,以此類推。以字符串'HELLO WORLD!'
  • Python開發者必知的 11 個 Python GUI 庫,你用過幾個?
    Python開發者必知的 11 個 Python GUI 庫,你用過幾個? 當你使用python編寫應用程式時,你就一定要使用GUI。Python GUI的選擇有很多。目前來說,Python GUI程序庫有30多個跨平臺框架。現在就列出其我認為最好的11個.
  • 應用BioPython解析和可視化蛋白質的結構
    胺基酸的序列為蛋白質的一級結構;多個胺基酸的局部結構為二級結構(如α螺旋、β摺疊、β轉角和無規則捲曲等);三級和四級結構為更為高級的空間結構。蛋白質的空間結構由一級結構為基礎,空間結構決定著蛋白質的生物活性。
  • 223個Python小例子(1-60)
    但是,如果我想要有個函數對i遞增,這樣:def h(): i += 1h()此時執行程序,bang, 出錯了!拋出異常:UnboundLocalError,原來編譯器在解釋i+=1時會把i解析為函數h()內的局部變量,很顯然在此函數內,編譯器找不到對變量i的定義,所以會報錯。
  • python字典操作大全,學習python第7天
    python字典跟列表類型,能存儲多個數據,並且還能在訪問元素的時候可以很快定位到需要的元素。而python字典操作方法有多少種呢?下面羽憶教程為您介紹。': 11},需要注意的是python字典中的值不允許重複。
  • Python 進階:全面解讀高級特性之切片!
    ))=7位元素# 步長為負數時,列表先翻轉,再截取li[::-1] == [16,14,11,9,7,6,5,4,1] # 翻轉整個列表li[::-2] == [16,11,7,5,1] # 翻轉整個列表,再按2間隔過濾li[:-5:-1] == [16,14,11,9] # 翻轉整個列表,取-5-(-len(li))=4位元素li[:-5:-3] =