Python列表用法

列表基礎(chǔ)

  1. 創(chuàng)建列表

創(chuàng)建一個(gè)空列表

   List = []#空列表

創(chuàng)建一個(gè)含有元素的列表

   List = [1,2,3,4,"列表","元素"]

創(chuàng)建一個(gè)多類型元素列表

   List = [2,45.13,3,4,5,"嵌套列表"] # 包含 整數(shù)、浮點(diǎn)數(shù)、字符串

創(chuàng)建嵌套列表

List = [1,(1,2,3,4),"列表","元素",{"元素":"列表"}] # 包含數(shù)字、元組、字符串、字典
  1. 訪問元素
    列表訪問主要包括:索引、切片、循環(huán)
    索引是指對(duì)應(yīng)元素所在的位置,與下標(biāo)是一個(gè)意思,索引是從0開始
    使用索引獲取列表里的內(nèi)容
List=["第1個(gè)元素","第2個(gè)元素","第3個(gè)元素","第4個(gè)元素","第5個(gè)元素"]
print(List[0])
print(List[1])
print(List[2])
print(List[3])

輸出結(jié)果:

第1個(gè)元素
第2個(gè)元素
第3個(gè)元素
第4個(gè)元素

使用切片正向索引獲取列表里的內(nèi)容

List=["第1個(gè)元素","第2個(gè)元素","第3個(gè)元素","第4個(gè)元素","第5個(gè)元素"]
print(List[1:4])

輸出結(jié)果:

['第2個(gè)元素', '第3個(gè)元素', '第4個(gè)元素']

使用切片反向索引索引獲取列表里的內(nèi)容

List=["第1個(gè)元素","第2個(gè)元素","第3個(gè)元素","第4個(gè)元素","第5個(gè)元素"]
print(List[-1])

輸出結(jié)果:

第5個(gè)元素

通過反向索引取出所有元素

List = ["第1個(gè)元素","第2個(gè)元素","第3個(gè)元素","第4個(gè)元素","第5個(gè)元素"]
print(List[::-1])

輸出結(jié)果:

['第5個(gè)元素', '第4個(gè)元素', '第3個(gè)元素', '第2個(gè)元素', '第1個(gè)元素']

使用兩個(gè)冒號(hào)獲取帶間隔的序列元素,兩個(gè)冒號(hào)后的數(shù)字就是間隔長(zhǎng)度

List = ["第1個(gè)元素","第2個(gè)元素","第3個(gè)元素","第4個(gè)元素","第5個(gè)元素"]
   print(List[::2])

輸出結(jié)果:

['第1個(gè)元素', '第3個(gè)元素', '第5個(gè)元素']

切片的完全形態(tài) 開始:結(jié)束:間隔

List = ["第1個(gè)元素","第2個(gè)元素","第3個(gè)元素","第4個(gè)元素","第5個(gè)元素"]
   print(List[1:4:2])

輸出結(jié)果:

['第2個(gè)元素', '第4個(gè)元素']

使用for循環(huán)和enumerate函數(shù)來取出列表的索引

List = ["第1個(gè)元素","第2個(gè)元素","第3個(gè)元素","第4個(gè)元素","第5個(gè)元素"]
for i in enumerate(List):
    print(i)

輸出結(jié)果:

(0, '第1個(gè)元素')
(1, '第2個(gè)元素')
(2, '第3個(gè)元素')
(3, '第4個(gè)元素')
(4, '第5個(gè)元素')
  1. 添加元素

使用append添加元素,每次添加一個(gè),列表的尾部添加

List = ["第1個(gè)元素","第2個(gè)元素","第3個(gè)元素","第4個(gè)元素","第5個(gè)元素"]
List.append("添加第1個(gè)元素")
    print(List)
List.append("添加第2個(gè)元素")
    print(List)

輸出結(jié)果:

['第1個(gè)元素', '第2個(gè)元素', '第3個(gè)元素', '第4個(gè)元素', '第5個(gè)元素', '增加一個(gè)元素']#末尾處是新增的元素
['第1個(gè)元素', '第2個(gè)元素', '第3個(gè)元素', '第4個(gè)元素', '第5個(gè)元素', '添加第1個(gè)元素', '添加第2個(gè)元素']#末尾處是新增的第2個(gè)元素

使用insert添加元素,在指定的位置添加元素

List = ["第1個(gè)元素","第2個(gè)元素","第3個(gè)元素","第4個(gè)元素","第5個(gè)元素"]
List.insert(0,"在0的位置添加一個(gè)元素")
print(List)

輸出結(jié)果:

['在0的位置添加一個(gè)元素', '第1個(gè)元素', '第2個(gè)元素', '第3個(gè)元素', '第4個(gè)元素', '第5個(gè)元素']#0的位置元素變成了,新添加的元素

使用extend 方法實(shí)現(xiàn)批量添加元素時(shí)未創(chuàng)建一個(gè)新的列表,而是直接添加在原列表中

List=[1,3,5,7,8]
List.extend([10,20,30,40])
print(List)

輸出結(jié)果:

[1, 3, 5, 7, 8, 10, 20, 30, 40]#批量添加元素

使用+拼接列表,也可以完成批量元素的添加,但實(shí)際是創(chuàng)建了一個(gè)新列表

List=[1,3,5,7,8]
List1 = List + [20,30,40,50]
print(List)
print(List1)

輸出結(jié)果:

[1, 3, 5, 7, 8] #原列表
[1, 3, 5, 7, 8, 20, 30, 40, 50]#新創(chuàng)建列表
  1. 刪除元素

刪除元素的方法有三種:remove,pop,del

remove 直接刪除元素,若被刪除元素在列表內(nèi)有多個(gè),則只刪除一個(gè)

List = ["第1個(gè)元素","第2個(gè)元素","第3個(gè)元素","第4個(gè)元素","第4個(gè)元素"]
List.remove("第4個(gè)元素")# 注:remove 直接寫要?jiǎng)h除的元素
print(List)

輸出結(jié)果:

['第1個(gè)元素', '第2個(gè)元素', '第3個(gè)元素', '第4個(gè)元素']#只刪除了一元素

pop 不帶參數(shù)默認(rèn)刪除列表最后一個(gè)元素;若帶參數(shù)則刪除此參數(shù)代表的索引處的元素

List = ["第1個(gè)元素","第2個(gè)元素","第3個(gè)元素","第4個(gè)元素","第5個(gè)元素"]
List.pop()
print(List)
List.pop(0)
print(List)
List.pop(-2)
print(List)

輸出結(jié)果:

['第1個(gè)元素', '第2個(gè)元素', '第3個(gè)元素', '第4個(gè)元素']# 不帶參數(shù)的輸出結(jié)果
['第2個(gè)元素', '第3個(gè)元素', '第4個(gè)元素', '第5個(gè)元素']# 帶參數(shù)的時(shí)候,根據(jù)索引刪除對(duì)于元素
['第1個(gè)元素', '第2個(gè)元素', '第3個(gè)元素', '第5個(gè)元素']# 可以使用正向索引和反向索引刪除

del與pop類似,刪除指定索引處的元素

List = ["第1個(gè)元素","第2個(gè)元素","第3個(gè)元素","第4個(gè)元素","第5個(gè)元素"]
del List[0]  # 注意寫法 del + 列表的索引
print(List)
del List[-1]
print(List)

輸出結(jié)果:

['第2個(gè)元素', '第3個(gè)元素', '第4個(gè)元素', '第5個(gè)元素']#刪除第0個(gè)元素
['第1個(gè)元素', '第2個(gè)元素', '第3個(gè)元素', '第4個(gè)元素']#刪除最后一個(gè)元素
  1. List其他操作

in 與可迭代容器的結(jié)合,還用于判斷某個(gè)元素是否屬于此列表

List = [1,2,3,4,5]
if 4 in List:
    print(True)
else:
    print(False)
-----------------------------------------------------------------------------------------
List = [1,2,3,4,5]
if 7 in List:
    print(True)
else:
    print(False)

輸出結(jié)果:

True
False

內(nèi)置的list與數(shù)字結(jié)合,實(shí)現(xiàn)元素的復(fù)制

List = ["Hi"]*4
print(List)

輸出結(jié)果:

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

使用列表與數(shù)字相乘構(gòu)建二維列表,然后第一個(gè)元素賦值為[1,2],第二個(gè)元素賦值為[3,4]

List = [[]]*2
List[0]=[1,2]
List[1]=[3,4]

輸出結(jié)果:

[[1, 2], [3, 4]]

列表生成式 使用列表生成式創(chuàng)建1到10的所有數(shù)列表

列表生成式 使用列表生成式創(chuàng)建1到10的所有奇數(shù)列表

List =[i for i in range(1,11)]
List =[i for i in range(1,11) if i&1 ]

輸出結(jié)果:

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[1, 3, 5, 7, 9]
  1. 常用API

clear 用于清空列表內(nèi)的所有元素

List =[1,2,3,4,5]
List.clear()
print(List)

輸出結(jié)果:

[]# 一個(gè)空列表

index 用于查找里面某個(gè)元素的索引

List =[1,2,3,4,5]
List.index(1)
print(List.index(1))
List.index(5)
print(List.index(5))

輸出結(jié)果:

0  # 1的索引是0
4  # 5的索引是4

count用于統(tǒng)計(jì)某元素的出現(xiàn)次數(shù)

List =[1,2,3,4,5,3,5,5,3,3,2]
List.count(3)
print(List.count(3))
List.count(5)
print(List.count(5))

輸出結(jié)果:

4 #3這個(gè)元素出現(xiàn)4次
3 #5這個(gè)元素出現(xiàn)3次

sort 用于元素排序,注:sort 方法不適合 int 和 str 類型的比較,list 和 str 不能相互比較

List =[1,30,50,48,66]
List.sort()#升序排列
print(List)
List.sort(reverse=True)#降序排列
print(List)

輸出結(jié)果:

[1, 30, 48, 50, 66] #升序排列
[66, 50, 48, 30, 1] #降序排列

reverse 完成列表反轉(zhuǎn),注:reverse與切片[::-1]區(qū)別,切片有返回值,reverse沒有返回值

List = ["第1個(gè)元素","第2個(gè)元素","第3個(gè)元素","第4個(gè)元素","第5個(gè)元素"]
List.reverse()
print(List)

輸出結(jié)果:

['第5個(gè)元素', '第4個(gè)元素', '第3個(gè)元素', '第2個(gè)元素', '第1個(gè)元素']

列表是可變的,可變的對(duì)象是不可哈希的,不可哈希的對(duì)象不能被映射,因此不能被用作字典的鍵

List=[1,3]
dict ={List:'不能被哈希'} #會(huì)拋出如下異常
print(dict)

輸出結(jié)果:

TypeError: unhashable type: 'list'
  1. 列表的拷貝
    直接賦值:其實(shí)就是對(duì)象的引用(別名)
    淺拷貝(copy):拷貝父對(duì)象,不會(huì)拷貝對(duì)象的內(nèi)部的子對(duì)象
    深拷貝(deepcopy): copy 模塊的 deepcopy 方法,完全拷貝了父對(duì)象及其子對(duì)象
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容