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

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

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

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

定義和使用列表

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

變量:使用變量存儲數(shù)據(jù),但是存在一個缺點:一個變量一次只能存儲一個數(shù)據(jù)

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

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

在Python中,可以使用[ ]字面量語法來定義列表,列表中的多個元素用逗號進行分隔

語法:

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

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

除此以外,還可以通過Python內(nèi)置的 list 函數(shù)將其他序列變成列表。它是創(chuàng)建列表對象的構(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ù)類型

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

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

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

列表的運算符

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

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

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

# 獲取列表的長度(元素個數(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]

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

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

列表元素的遍歷

如果想逐個取出列表中的元素,可以使用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()同時遍歷索引和元素
for index,value in enumerate(list3):
print(index,value)

列表的方法

#1.添加元素

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

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

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


#2.刪除元素

list2=["秦始皇","漢武帝","曹操","劉備","孫權(quán)"]
#pop()傳輸?shù)膮?shù)是下標(biāo),不傳參數(shù)的時候,默認(rèn)移除最后一個元素,返回的是原列表
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獲取列表的長度

#獲取列表中的最大值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(元素名稱)
print(list1.index(98))

# 查找元素的索引位置
items = ['Python', 'Java', 'Java', 'Go', 'Kotlin', 'Python']
print(items.index('Python'))       # 0
print(items.index('Python', 2))    # 5
# 注意:雖然列表中有'Java',但是從索引為3這個位置開始后面是沒有'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)部進行翻轉(zhuǎn),不會生成新列表#list.reverse()
print(list)

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

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

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

需要提醒大家,

在使用remove方法刪除元素時,如果要刪除的元素并不在列表中,會引發(fā)ValueError異常,錯誤消息是:list.remove(x): x not in list。

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

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

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

二維列表

 一個列表的元素是一個列表

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)缺點:生成的列表一般情況下都是等差數(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語言沒有限定列表中的元素必須是相同的數(shù)據(jù)類型,也就是說一個列表中的元素可以任意的數(shù)據(jù)類型,當(dāng)然也包括列表。如果列表中的元素又是列表,那么我們可以稱之為嵌套的列表。嵌套的列表可以用來表示表格或數(shù)學(xué)上的矩陣,例如:我們想保存5個學(xué)生3門課程的成績,可以定義一個保存5個元素的列表保存5個學(xué)生的信息,而每個列表元素又是3個元素構(gòu)成的列表,分別代表3門課程的成績。但是,一定要注意下面的代碼是有問題的。

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

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

# 嵌套的列表需要多次索引操作才能獲取元素
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中的列表底層是一個可以動態(tài)擴容的數(shù)組,列表元素在內(nèi)存中也是連續(xù)存儲的,所以可以實現(xiàn)隨機訪問(通過一個有效的索引獲取到對應(yīng)的元素且操作時間與列表元素個數(shù)無關(guān))。

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

相關(guān)文章

最新評論

信阳市| 遂溪县| 修武县| 大埔县| 噶尔县| 山阴县| 庄河市| 灌阳县| 宁蒗| 博客| 荥经县| 宁陕县| 济源市| 三江| 富蕴县| 新龙县| 洛隆县| 敖汉旗| 新巴尔虎右旗| 大邑县| 紫云| 和平区| 天津市| 满城县| 高州市| 崇文区| 镇远县| 贵阳市| 台湾省| 太仆寺旗| 紫云| 千阳县| 建宁县| 佛冈县| 米林县| 通化市| 绿春县| 徐闻县| 曲周县| 治县。| 平和县|