最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python中列表(list)常見(jiàn)操作的完整教學(xué)

 更新時(shí)間:2026年06月01日 09:25:28   作者:py小王子  
在Python中,列表是一系列元素按特定的順序構(gòu)成的數(shù)據(jù)序列,這就意味著定義一個(gè)列表類(lèi)型的變量就可以保存多個(gè)數(shù)據(jù),而且允許存在重復(fù)數(shù)據(jù),下面小編就帶大家詳細(xì)了解一下Python中列表(list)的常見(jiàn)操作吧

對(duì)于列表的學(xué)習(xí),我整理了網(wǎng)上的一些資料,希望可以幫助到各位?。?!

定義和使用列表

在Python中,列表是一系列元素按特定的順序構(gòu)成的數(shù)據(jù)序列,這就意味著定義一個(gè)列表類(lèi)型的變量就可以保存多個(gè)數(shù)據(jù),而且允許存在重復(fù)數(shù)據(jù)。

變量:使用變量存儲(chǔ)數(shù)據(jù),但是存在一個(gè)缺點(diǎn):一個(gè)變量一次只能存儲(chǔ)一個(gè)數(shù)據(jù)

若要存儲(chǔ)多個(gè)數(shù)據(jù):一般使用列表

列表本質(zhì)上面是一個(gè)有序的集合。

在Python中,可以使用[ ]字面量語(yǔ)法來(lái)定義列表,列表中的多個(gè)元素用逗號(hào)進(jìn)行分隔

語(yǔ)法:

變量名 = 列表
列表名稱(chēng) = [數(shù)據(jù)1,數(shù)據(jù)2.....]

items1 = [36, 662, 97, 68, 59, 89]
items2 = ['Python', 'Java', 'Go']
  • 列表中存儲(chǔ)的數(shù)據(jù)為元素
  • 列表中的元素從頭到尾進(jìn)行了編號(hào)。編號(hào)從0開(kāi)始,這個(gè)編號(hào)被稱(chēng)為下標(biāo)或者索引或者角標(biāo)
  • 索引的取值范圍:0元素的個(gè)數(shù)-1
  • 超過(guò)索引的范圍:列表越界

除此以外,還可以通過(guò)Python內(nèi)置的 list 函數(shù)將其他序列變成列表。它是創(chuàng)建列表對(duì)象的構(gòu)造器。

items1 = list(range(1, 10))
print(items1)    # [1, 2, 3, 4, 5, 6, 7, 8, 9]
items2 = list('hello')
print(items2)    # ['h', 'e', 'l', 'l', 'o']

1.創(chuàng)建列表

list1 = [ ]         空列表

2.帶元素的列表

list2=["五菱宏光","哈弗H6","大狗","歐拉",True]

3.列表中的元素可以是不同的數(shù)據(jù)類(lèi)型

list3=[12,3.13,True,Fa1se,"he11o","米西米西"]

注意:將數(shù)據(jù)保存到列表的時(shí)候,不用考慮列表的大小,如果數(shù)據(jù)很大的話(huà),底層會(huì)進(jìn)行自動(dòng)擴(kuò)容 

需要說(shuō)明的是,列表是一種可變數(shù)據(jù)類(lèi)型,也就是說(shuō)列表可以添加元素、刪除元素、更新元素

列表的運(yùn)算符

列表支持拼接、重復(fù)、成員運(yùn)算、索引和切片以及比較運(yùn)算

items1 = [35, 12, 99, 68, 55, 87]
items2 = [45, 8, 29]

# 列表的拼接
items3 = items1 + items2
print(items3)    # [35, 12, 99, 68, 55, 87, 45, 8, 29]

# 列表的重復(fù)
items4 = ['hello'] * 3
print(items4)    # ['hello', 'hello', 'hello']

# 列表的成員運(yùn)算
print(100 in items3)        # False
print('hello' in items4)    # True

# 獲取列表的長(zhǎng)度(元素個(gè)數(shù))
size = len(items3)
print(size)                 # 9

# 列表的索引
print(items3[0], items3[-size])        # 35 35
items3[-1] = 100
print(items3[size - 1], items3[-1])    # 100 100

# 列表的切片
print(items3[:5])          # [35, 12, 99, 68, 55]
print(items3[4:])          # [55, 87, 45, 8, 100]
print(items3[-5:-7:-1])    # [55, 68]
print(items3[::-2])        # [100, 45, 55, 99, 35]

# 列表的比較運(yùn)算
items5 = [1, 2, 3, 4]
items6 = list(range(1, 5))
# 兩個(gè)列表比較相等性比的是對(duì)應(yīng)索引位置上的元素是否相等
print(items5 == items6)    # True
items7 = [3, 2, 1]
# 兩個(gè)列表比較大小比的是對(duì)應(yīng)索引位置上的元素的大小
print(items5 <= items7)    # True

值得一提的是,由于列表是可變類(lèi)型,所以通過(guò)索引操作既可以獲取列表中的元素,也可以更新列表中的元素。對(duì)列表做索引操作一樣要注意索引越界的問(wèn)題,對(duì)于有N個(gè)元素的列表,正向索引的范圍是0到N-1,負(fù)向索引的范圍是-1到-N,如果超出這個(gè)范圍,將引發(fā)IndexError異常,錯(cuò)誤信息為:list index out of range。

列表元素的遍歷

如果想逐個(gè)取出列表中的元素,可以使用for循環(huán),有以下三種做法。

方法一:

items = ['Python', 'Java', 'Go', 'Kotlin']

for index in range(len(items)):
    print(items[index])

 方法二:

items = ['Python', 'Java', 'Go', 'Kotlin']

for item in items:
    print(item)

 方法三: 

# 第三種方式:enumrate()同時(shí)遍歷索引和元素
for index,value in enumerate(list3):
print(index,value)

列表的方法

#1.添加元素

#a.append() 向列表的尾部追加元素
list1=["香妃","妲己","趙飛燕","楊貴妃","東施"]
print(list1)
#追加單個(gè)元素
list1.append("西施")
#追加多個(gè)元素的時(shí)候,不能直接追加,必須使用列表的方式追加,原列表變成了二維列表list1.append(["王昭君","貂蟬","大小喬"])
print(list1)

#b.extend用于在列表末尾一次追加另一個(gè)列表中的多個(gè)元素
list1=["香妃","妲己","趙飛燕","楊貴妃","東施"]
list1.extend(["乾隆","商紂王","漢昭帝","唐玄宗","解博超"])
list1.extend("秦始皇") #"秦""始""皇"
print(list1)

#c.insert()在列表中指定的索引處插入元素,后面的其他的元素依次后延
list2=["秦始皇","漢武帝","曹操","劉備","孫權(quán)"]
list2.insert(1,"劉邦")
#若想一次性插入多個(gè)元素使用列表的形式插入原列表會(huì)變?yōu)槎S列表
list2.insert(3,["諸葛亮","馬超"])
print(list2)


#2.刪除元素

list2=["秦始皇","漢武帝","曹操","劉備","孫權(quán)"]
#pop()傳輸?shù)膮?shù)是下標(biāo),不傳參數(shù)的時(shí)候,默認(rèn)移除最后一個(gè)元素,返回的是原列表
print(list2)
list2.pop()["秦始皇","漢武帝","曹操","劉備"]
list2.pop(2) #['秦始皇','漢武帝','劉備','孫權(quán)']
print(list2)

#remove()傳輸?shù)膮?shù)是指定移除的元素
list2.remove("劉備")
print(list2)

#clear()清空列表
print(list2)
list2.clear()
print(list2) #[]

3.獲取元素

list=[12,34,2,5.23,True,False,"hello"]
print(len(list)) #len獲取列表的長(zhǎng)度

#獲取列表中的最大值max()
list1=[12,3,4,32,98,14,3,78,3,34,3]
print(max(list1))

#獲取列表中的最小值min()
list1=[12,3,4,32,98,14,3,78,3,34,3]
print(min(list1))

#獲取指定元素的索引 index(元素名稱(chēng))
print(list1.index(98))

# 查找元素的索引位置
items = ['Python', 'Java', 'Java', 'Go', 'Kotlin', 'Python']
print(items.index('Python'))       # 0
print(items.index('Python', 2))    # 5
# 注意:雖然列表中有'Java',但是從索引為3這個(gè)位置開(kāi)始后面是沒(méi)有'Java'的
print(items.index('Java', 3))      # ValueError: 'Java' is not in list

# 查找元素出現(xiàn)的次數(shù)
items = ['Python', 'Java', 'Java', 'Go', 'Kotlin', 'Python']

# 查找元素出現(xiàn)的次數(shù)
print(items.count('Python'))    # 2
print(items.count('Go'))        # 1
print(items.count('Swfit'))     # 0


4.其他用法
#列表的其他用法
list=[12,42,34,16,87]
print(list)
#reverse翻轉(zhuǎn)列表元素 注意:在原列表的內(nèi)部進(jìn)行翻轉(zhuǎn),不會(huì)生成新列表#list.reverse()
print(list)

#sort()對(duì)原列表元素進(jìn)行排序,默認(rèn)是升序 不會(huì)生成一個(gè)新的列表
#升序
list.sort()
#降序 在sort函數(shù)中傳入reverse=True實(shí)現(xiàn)降序#list.sort(reverse=True)
print(list)

#sorted()對(duì)列表元素進(jìn)行排序,默認(rèn)是升序,排序的結(jié)果會(huì)生成一個(gè)新列表
#升序
list1=sorted(list)
#降序傳入reverse=True
list1=sorted(list,reverse=True)
print(list1)

list2=["a","hello","abe","bc","everyone"]#按照元素的長(zhǎng)度進(jìn)行排序
list3=sorted(list2,key=len)
print(list3)

需要提醒大家,

在使用remove方法刪除元素時(shí),如果要?jiǎng)h除的元素并不在列表中,會(huì)引發(fā)ValueError異常,錯(cuò)誤消息是:list.remove(x): x not in list。

在使用pop方法刪除元素時(shí),如果索引的值超出了范圍,會(huì)引發(fā)IndexError異常,錯(cuò)誤消息是:pop index out of range。

從列表中刪除元素其實(shí)還有一種方式,就是使用Python中的del關(guān)鍵字后面跟要?jiǎng)h除的元素,這種做法跟使用pop方法指定索引刪除元素沒(méi)有實(shí)質(zhì)性的區(qū)別,但后者會(huì)返回刪除的元素,前者在性能上略?xún)?yōu)(del對(duì)應(yīng)字節(jié)碼指令是DELETE_SUBSCR,而pop對(duì)應(yīng)的字節(jié)碼指令是CALL_METHOD和POP_TOP)。

items = ['Python', 'Java', 'Go', 'Kotlin']
del items[1]
print(items)    # ['Python', 'Go', 'Kotlin']

二維列表

 一個(gè)列表的元素是一個(gè)列表

list=[12,34,6,7,"boy",True] #一維列表 
list1=[32,14,"girl",False,[16,31,9.12,"haha"]] #二維列表print(list1[1]) #14
print(list1[4][2]) #9.12

列表生成式

list comprehension

系統(tǒng)內(nèi)置的用于創(chuàng)建list的方式

range(start,end,step)缺點(diǎn):生成的列表一般情況下都是等差數(shù)列

#最基本的列表
#1.生成1-10之間所有的數(shù)字
list1=list(range(1,11))
print(list1)

#需求:生成列表[1,4,9,16,25]

#第一種方法:使用for循環(huán)為空列表添加元素
for i in range(1,6):
list2.append(i**2)
print(list2)

#第二種方法:使用列表生成式
list3=[i**2 for i in range(1,6)]
print(list3) #[1,4,9,16,25]

#使用列表生成式生成1-10之間所有的奇數(shù)
list4=[i for i in range(1,11) if i%2==1] 
print(list4)

#使用列表生成式生成1-10之間所有的奇數(shù)并且能被3整除的數(shù)字
list5=[i for i in range(1,11) if i%2==1 and i%3==0]
print(list5)

#列表生成式中使用雙重循環(huán)
list6=[i+j for i in "xyz" for j in "987"]
print(list6)

#字典生成式:
dict1={i:i*i for i in range(1,6)}
print(dict1)

#集合生成式:
set1={i*i for i in range(1,6)}
print(set1)

嵌套的列表

Python語(yǔ)言沒(méi)有限定列表中的元素必須是相同的數(shù)據(jù)類(lèi)型,也就是說(shuō)一個(gè)列表中的元素可以任意的數(shù)據(jù)類(lèi)型,當(dāng)然也包括列表。如果列表中的元素又是列表,那么我們可以稱(chēng)之為嵌套的列表。嵌套的列表可以用來(lái)表示表格或數(shù)學(xué)上的矩陣,例如:我們想保存5個(gè)學(xué)生3門(mén)課程的成績(jī),可以定義一個(gè)保存5個(gè)元素的列表保存5個(gè)學(xué)生的信息,而每個(gè)列表元素又是3個(gè)元素構(gòu)成的列表,分別代表3門(mén)課程的成績(jī)。但是,一定要注意下面的代碼是有問(wèn)題的。

scores = [[0] * 3] * 5
print(scores)    # [[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]]

看上去我們好像創(chuàng)建了一個(gè)5 * 3的嵌套列表,但實(shí)際上當(dāng)我們錄入第一個(gè)學(xué)生的第一門(mén)成績(jī)后,你就會(huì)發(fā)現(xiàn)問(wèn)題來(lái)了,我們看看下面代碼的輸出。

# 嵌套的列表需要多次索引操作才能獲取元素
scores[0][0] = 95
print(scores)
# [[95, 0, 0], [95, 0, 0], [95, 0, 0], [95, 0, 0], [95, 0, 0]]

正確做法:

scores = [[0] * 3 for _ in range(5)]
scores[0][0] = 95
print(scores)
# [[95, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]]

總結(jié)

Python中的列表底層是一個(gè)可以動(dòng)態(tài)擴(kuò)容的數(shù)組,列表元素在內(nèi)存中也是連續(xù)存儲(chǔ)的,所以可以實(shí)現(xiàn)隨機(jī)訪(fǎng)問(wèn)(通過(guò)一個(gè)有效的索引獲取到對(duì)應(yīng)的元素且操作時(shí)間與列表元素個(gè)數(shù)無(wú)關(guān))。

以上就是Python中列表(list)常見(jiàn)操作的完整教學(xué)的詳細(xì)內(nèi)容,更多關(guān)于Python列表的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評(píng)論

镇江市| 张家界市| 阳朔县| 广元市| 株洲市| 云林县| 明水县| 孝义市| 托克托县| 葵青区| 波密县| 庄浪县| 资中县| 庆云县| 兴和县| 石阡县| 嘉禾县| 喀什市| 连江县| 五指山市| 沁阳市| 沧源| 樟树市| 隆昌县| 清水县| 浦城县| 平舆县| 育儿| 蚌埠市| 县级市| 依安县| 大庆市| 枝江市| 名山县| 新竹市| 寻乌县| 靖西县| 乌鲁木齐县| 蒲城县| 河津市| 宁海县|