關(guān)于python列表相關(guān)知識(shí)點(diǎn)
python列表
變量可以存儲(chǔ)一個(gè)元素,而列表是一個(gè)大容器,可以存儲(chǔ)N多個(gè)元素,程序可以方便的對(duì)這些數(shù)據(jù)進(jìn)行整體操作(可以存儲(chǔ)多個(gè)不同的數(shù)據(jù)類型)
列表相當(dāng)于其它語(yǔ)言的數(shù)組
| 正序索引 | 0 | 1 | 2 | 3 | 4 | 5 |
| 數(shù)據(jù) | 'hello' | 'world' | 'python' | 34.7 | 1234 | 'sycyyds' |
| 倒序索引 | -6 | -5 | -4 | -3 | -2 | -1 |
代碼:
lst = ['hello','world','python',98] print(id(lst)) //查看標(biāo)識(shí) print(type(lst)) //查看數(shù)據(jù)類型 print(lst) //輸出值

1.列表的創(chuàng)建與刪除
列表中的元素放置在“[]”中,兩個(gè)相鄰的元素之間使用“,”隔開。同一個(gè)列表中的元素可以為任何類型的數(shù)據(jù),如數(shù)值/字符串/列表等
列表的創(chuàng)建方式
1.使用中括號(hào)
2.調(diào)用內(nèi)置函數(shù)list()
# 1. 使用[] lst1 = ['hello','world',98] # 2. 使用內(nèi)置函數(shù)list() lst2 = list(['hello','world',98]) print(lst1) print(lst2)
列表的特點(diǎn)
1.列表元素按順序有序排序
lst = ['hello','world','python',98] print(lst)

2.索引映射唯一數(shù)據(jù)
| 正序索引 | 0 | 1 | 2 | 3 | 4 | 5 |
| 數(shù)據(jù) | 'hello' | 'world' | 'python' | 34.7 | 1234 | 'sycyyds' |
| 倒序索引 | -6 | -5 | -4 | -3 | -2 | -1 |
列表中的元素是通過(guò)索引來(lái)獲取的。列表當(dāng)中的正序索引是從0開始的,逆序是從-1開始的
lst = list(['hello','world',98,23]) # 正序從零開始 逆序從-1開始 print(lst[0],lst[-3]) #輸出為 hello world
3.列表可以存儲(chǔ)重復(fù)數(shù)據(jù)
lst = ['hello','world',23,'python','hello'] print(lst)

4.任意數(shù)據(jù)類型混存
任何類型的數(shù)據(jù)類型都可以存儲(chǔ)在列表中
5.根據(jù)需要?jiǎng)討B(tài)分配和回收內(nèi)存
不用擔(dān)心內(nèi)存不夠用的問(wèn)題
2.列表的查詢操作
1.獲取索引
1.如果列表中存在N個(gè)相同元素,只返回列表中相同元素的第一個(gè)元素的索引
2.如果查詢?cè)卦诹斜碇胁淮嬖冢瑒t會(huì)拋出ValueError
3.還可以在指定的start和stop之間進(jìn)行查找
lst1 = ['hello','world',98,'hello']
print(lst.index('hello')) #lst后面是英語(yǔ)的句號(hào)
# 輸出為0
# 如果列表中有相同元素,只返回列表中相同元素的第一個(gè)元素的索引
# print(lst1.index('pathon')) 錯(cuò)誤: ValueError: 'pathon' is not in list
print(lst.index('hello',0,3)) ##在0-3中查找,不包括3
lst2 = ['hello','world',98,'world','hello',123]
# 獲取索引為2的元素
print(lst2[2])
# 獲取索引為-3的元素
print(lst2[-3])
# 獲取索引中沒(méi)有的元素
# print(lst2[10]) 錯(cuò)誤: IndexError: list index out of range2.獲取多個(gè)元素
獲取列表中的多個(gè)元素
語(yǔ)法格式
列表名[ start : stop : step ]
切片的結(jié)果是原列表片段的拷貝
切片的范圍是[start : stop )是從start開始到stop結(jié)束,但不包括stop
step默認(rèn)步長(zhǎng)為1
lst1 = [10,20,30,40,50,60,70,80]
#start=1,stop=6,step=1
# print(lst1[1:6:1])
print('原列表',id(lst1))
lst2 = lst1[1:6:1]
print('切的片段',id(lst2))
# 不寫步長(zhǎng) 默認(rèn)步長(zhǎng)為1
print(lst1[1:6])
print(lst1[1:6:])
# start=1,stop=6,step=2
print(lst1[1:6:2])
# start采用默認(rèn),stop=6,step=2
print(lst1[:6:2])
# start=1,stop采用默認(rèn),step=2
print(lst1[1::2])
# 步長(zhǎng)為負(fù)數(shù) 默認(rèn)從最后一個(gè)元素開始
print('原列表:',lst1)
# 逆序輸出
print(lst1[::-1])
#start=7,stop省略 step為-1
print(lst1[7::-1])
#start=6,stop=0 step為-2
print(lst1[6:0:-2])3. 判斷指定的元素在列表中是否存在
元素 in 列表名
元素not in 列表名
列表的遍歷
for 迭代變量 in 列表名 :
操作
li = [10,20,'python','hello']
print(10 in li) #True
print(100 in li) #False
print(10 not in li) #False
print(100 not in li) #True
# 遍歷列表中的元素
print('__________________________________________')
for item in li:
print(item)3.列表元素的增,刪,改
1.增
增加操作方法操作描述append()在列表末尾添加一個(gè)元素extend()在列表的末尾至少添加一個(gè)
| 增加操作 | 方法 | 操作描述 |
| append() | 在列表末尾添加一個(gè)元素 | |
| extend() | 在列表的末尾至少添加一個(gè)元素 | |
| insert() | 在列表的任意位置添加一個(gè)元素 | |
| 切片 | 在列表的任意位置至少添加一個(gè)元素 |
元素insert()在列表的任意位置添加一個(gè)元素切片在列表的任意位置至少添加一個(gè)元素
print('_______________________向列表的末尾添加一個(gè)元素_______________________')
lst3=[10,20,30]
print('添加元素前:',lst3,id(lst3))
lst3.append(100)
print('添加元素后:',lst3,id(lst3))
lst2=['hello','world']
lst3.append(lst2) # 將lst2當(dāng)作一個(gè)元素加到lst3后面 [10, 20, 30, 100, ['hello', 'world']]
print(lst3)
lst3.extend(lst2) # extend向列表中添加多個(gè)元素 [10, 20, 30, 'hello', 'world']
print(lst3)
# 在任意(指定)位置上添加一個(gè)元素 insert(索引,要添加的數(shù))
lst3.insert(1,90)
print(lst3)
# 在任意位置上添加N多個(gè)元素
lst=[True,False,'hello']
lst3[1:]=lst #從1開始切,然后把lst中的值放到后面,用新的列表來(lái)替換切掉的列表
print(lst3)2.刪
| 刪除操作 | 方法 | 操作描述 |
| remove() | 一次移除一個(gè)元素 | |
| 有重復(fù)元素的只刪除第一個(gè) | ||
| 元素不存在時(shí)拋出ValueError | ||
| pop() | 刪除一個(gè)指定索引位置上的元素 | |
| 確定索引不存在時(shí)拋出IndexError | ||
| 不指定索引,刪除最后一個(gè)元素 | ||
| 切片 | 一次至少刪除一個(gè)元素 | |
| clear() | 清空列表 | |
| del | 刪除列表 |
代碼:
lst=[10,20,30,40,50,60,30]
lst.remove(30) #從列表中移除一個(gè)元素,如果有重復(fù)只移除一個(gè)元素
print(lst)
# lst.remove(100) # ValueError: list.remove(x): x not in list
# pop根據(jù)索引移除元素
lst.pop(1)
print(lst)
# lst.pop(7) IndexError: pop index out of range 如果指定的索引位置不存在,將拋出異常
# 如果不指定參數(shù),則刪除列表中最后一個(gè)元素
lst.pop()
print(lst)
print('___________切片操作刪除至少一個(gè)元素,將產(chǎn)生一個(gè)新的列表元素___________')
new_list=lst[1:3]
print('原列表',lst)
print('切片后的列表',new_list)
# 不產(chǎn)生新的對(duì)象,而是刪除原列表中的內(nèi)容
lst[1:3]=[]
print(lst)
# 清除列表中的所有元素
lst.clear()
print(lst)
# del 語(yǔ)句將列表刪除
del lst
### print(lst) NameError: name 'lst' is not defined.3.改
為指定索引的元素賦予一個(gè)新值
為指定切片賦予一個(gè)新值
print('****************修改列表的值*****************')
lst=[10,20,30,40]
#一次修改一個(gè)值
lst[2]=100
print(lst) #[10,20,100,40]
lst[1:3]=[300,400,500,600]
print(lst) #[10,300,400,500,600,40]4.列表元素的排序
1.sort()方法
對(duì)原列表的排序操作
print('_______________sort排序操作_________________')
lst=[20,40,10,50,15]
print('排序前的列表',lst,id(lst))
#開始排序,調(diào)用列表對(duì)象sort方法,升序排序
lst.sort()
print('排序后的列表',lst,id(lst))
# 標(biāo)識(shí)沒(méi)有改變,在原列表中排序
# 通過(guò)指定關(guān)鍵字參數(shù),將列表中的元素降序排序
lst.sort(reverse=True) #reverse=True 表示降序,reverse=False 就是升序
print(lst)
lst.sort(reverse=False)
print(lst)2.sorted方法
產(chǎn)生一個(gè)新的列表,原列表不發(fā)生改變
print('_________使用內(nèi)置函數(shù)sorted()對(duì)列表進(jìn)行排序,將產(chǎn)生一個(gè)新的列表對(duì)象__________')
lst=[20,40,10,50,15]
print('原列表',lst)
# 開始排序 指定關(guān)鍵字參數(shù),實(shí)現(xiàn)列表元素升序排序
new_list=sorted(lst)
print(lst)
print(new_list)
# 指定關(guān)鍵字參數(shù),實(shí)現(xiàn)列表元素降序排序
desc_list=sorted(lst,reverse=True)
print(desc_list)5.列表元素推導(dǎo)式
注意事項(xiàng):表示列表元素的表達(dá)式“中通常包含自定義變量”
print('____________________列表生成式________________________')
lst=[i for i in range(1,10)]
print(lst) #產(chǎn)生1-9
lst1=[i*i for i in range(1,10)]
print(lst1) #產(chǎn)生1的平方-9的平方
# 產(chǎn)生列表元素為2,4,6,8,10
lst2=[2*i for i in range(1,6)]
print(lst2)到此這篇關(guān)于關(guān)于python列表相關(guān)知識(shí)點(diǎn)的文章就介紹到這了,更多相關(guān)python列表內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python使用opencv對(duì)圖像mask處理的方法
這篇文章主要介紹了python使用opencv對(duì)圖像mask處理的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07
如何獲取Python簡(jiǎn)單for循環(huán)索引
這篇文章主要介紹了如何獲取Python簡(jiǎn)單for循環(huán)索引,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11
Python編寫合并字典并實(shí)現(xiàn)敏感目錄的小腳本
這篇文章主要介紹了Python編寫合并字典并實(shí)現(xiàn)敏感目錄的小腳本,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-02-02
python中計(jì)算一個(gè)列表中連續(xù)相同的元素個(gè)數(shù)方法
今天小編就為大家分享一篇python中計(jì)算一個(gè)列表中連續(xù)相同的元素個(gè)數(shù)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-06-06
基于python實(shí)現(xiàn)監(jiān)聽Rabbitmq系統(tǒng)日志代碼示例
這篇文章主要介紹了基于python實(shí)現(xiàn)監(jiān)聽Rabbitmq系統(tǒng)日志代碼示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11

