日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

【Python基础】超级详解系列-Python列表全面解析

發布時間:2025/3/12 python 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Python基础】超级详解系列-Python列表全面解析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.


Python有6個內置的基本數據類型:Number(數字)、String(字符串)、List(列表)、Tuple(元組)、Set(集合)、Dictionary(字典),列表可以算是最常見的數據類型。列表的數據項不需要具有相同的類型。列表是Python里面非常重要的數據類型,列表有多重創建方法,也有比較多的屬性,對應的方法總共有11個,全面掌握這些方法,對數據的處理效率會大大提高,現在分享給大家。

一、列表的創建

01、直接創建

最直接的列表創建,用中括號[]包裹元素,元素使用逗號分隔即可,如下所示:

list1 = ['physics', 'chemistry', 1997, 2000] list2 = [1, 2, 3, 4, 5 ] list3 = ["a", "b", "c", "d"] list4 = ['red', 'green', 'blue', 'yellow', 'white', 'black']

02、用list()方法,轉化生成列表

list_b = list("abc") # list_b == ['a', 'b', 'c'] list_c = list((4, 5, 6)) # list_c == [4, 5, 6]

03、列表生成式/列表解析式/列表推導式,生成列表。

list_a = [1, 2, 3] list_d = [i for i in list_a]#[1, 2, 3] list_e = [i*j for i in list_a for j in list_c]#[4,5,6,10,12,12,15,18] list_f = [i*j for i,j in zip(list_a,list_c)]#[4, 10, 18] list_g = [i for i in list_a if i%2 == 0]#[2] #結合range()函數,range(start, stop[, step]) list_h = list(range(3)) # [0, 1, 2] list_i = list(range(3,7)) # [3, 4, 5, 6] list_j = list(range(3,9,2)) # [3, 5, 7] #找出100以內的能夠被3整除的正整數 list_k = list(range(3,100,3)) # list_k == [3, 6, 9, ..., 96, 99]

二、列表的11個方法

print(dir(list()))#查看列表的方法 [ ..., 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove','reverse', 'sort']

01 append()

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

語法:ls.append(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)

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

ls = [1,2,3,5,4,5,5,5,5,"python"] ls.count(5) #統計列表ls中 5 出現的次數 5 ls.count(0)#列表ls中無0元素 0 ls.count("python") #統計列表ls中 "python" 出現的次數。 1

?

05 extend()

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

語法:ls.extend(iterable)

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

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]]

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

?

06 index()

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

語法:ls.index(value, start, stop)

參數:

  • value - 要查找的元素。

  • star - 索引的起始位置。

  • stop -索引的結束位置。

ls = [1,2,3,"a",3,5,"a",5,[1,7,"b"]] #返回列表ls中"a"第一次出現的位置。 ls.index("a") 2 #索引的起始位置為下標為4的元素,索引范圍為 3, 5, 'a', 5, [1, 7, 'b'] ls.index("a",4) 6 #索引的起始位置為下標為4的元素,結束位置為下標為7的元素。索引范圍 3, 5, 'a', 5 ls.index("a",4,8) 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) print(ls) [{1, 2, 3}, {1: 'a', 2: 'b'}, (1, 2, 3), [1, 2, 3], 1, 2, 3]

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)

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

ls1 = [1,2,"a",3,1,1,55,"a,1"] ls2 = [1,2,"a",3,1,1,55,"a,1"] #刪除ls1中第一次出現的元素 1 ls1.remove(1) ls1 [2, 'a', 3, 1, 1, 55, 'a,1']print(ls1.remove(1))#返回值為空 None#刪除ls2中第一次出現的元素'a,1' ls1.remove('a,1') ls2 [1, 2, 'a', 3, 1, 1, 55] print(ls2.remove('a,1'))#返回值為空 None

?

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 = ls y.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) print(ls) [7, 6, 5, 4, 3, 2, 1] ?

三、列表腳本操作符

列表對 + 和 * 的操作符與字符串相似。+ 號用于組合列表,* 號用于重復列表。如下所示:

Python 表達式

結果

描述

len([1, 2, 3])

3

計算長度

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

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

拼接

['Hi!'] * 4

['Hi!', 'Hi!', 'Hi!', 'Hi!']

重復

3 in [1, 2, 3]

True

元素是否存在于列表中

for x in [1, 2, 3]: print(x, end=" ")

1 2 3

迭代

?

四、列表相關的函數

所謂的函數,就是指內置函數中適用于列表的一些函數,主要包含以下函數:

序號

函數

1

len(list):列表元素個數

2

max(list):返回列表元素最大值

3

min(list):返回列表元素最小值

4

list(seq):將元組轉換為列表

往期精彩回顧適合初學者入門人工智能的路線及資料下載機器學習及深度學習筆記等資料打印機器學習在線手冊深度學習筆記專輯《統計學習方法》的代碼復現專輯 AI基礎下載機器學習的數學基礎專輯 獲取本站知識星球優惠券,復制鏈接直接打開: https://t.zsxq.com/qFiUFMV 本站qq群704220115。加入微信群請掃碼:

總結

以上是生活随笔為你收集整理的【Python基础】超级详解系列-Python列表全面解析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。