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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python数据结构的列表_Python数据结构之列表

發(fā)布時(shí)間:2025/4/5 python 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python数据结构的列表_Python数据结构之列表 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一,數(shù)據(jù)結(jié)構(gòu)的概念

數(shù)據(jù)結(jié)構(gòu)是通過某種方式組織在一起的數(shù)據(jù)集合,這些數(shù)據(jù)元素可以是數(shù)字或者字符,甚至可以是其他的數(shù)據(jù)結(jié)構(gòu)。

Python中最基本的數(shù)據(jù)結(jié)構(gòu)是序列(sequence)。序列中的每個(gè)元素被分配一個(gè)序號(hào)——元素位置,稱為索引,第一個(gè)索引為0,第二個(gè)為1,以此類推,最后的索引位為-1.

二,序列操作

序列的操作包括:索引,分片,加,乘,檢查某個(gè)元素是否屬于序列成員。Python還可以計(jì)算序列長(zhǎng)度,找出最大值max()方法,最小值min()方法。同時(shí)還可對(duì)序列進(jìn)行迭代iter方法。迭代的意思就是可以對(duì)序列中的元素重復(fù)執(zhí)行某些操作。

1,索引

我們可以根據(jù)索引的位置來取數(shù)據(jù),使用負(fù)數(shù)時(shí),可以從列表倒序取出數(shù)據(jù)。

列表的索引

data=["list","string","dict","tuple"]#使用索引取出對(duì)應(yīng)數(shù)值,Python默認(rèn)0位為第一位,所以使用索引1返回列表第二個(gè)數(shù)值

print(data[1])

運(yùn)行結(jié)果為string#使用負(fù)數(shù)取末尾值

print(data[-1])

運(yùn)行結(jié)果為tuple

2,分片

分片操作可以取出范圍內(nèi)的數(shù)據(jù),使用冒號(hào)隔開兩個(gè)索引來進(jìn)行操作。分片操作有一個(gè)很形象的比喻:顧頭不顧尾,意思就是我們兩個(gè)索引位,只包含第一個(gè)索引位,第二個(gè)索引位不在分片區(qū)內(nèi)

#列表的分片操作

data=["list","string","dict","tuple"]#分片操作取出前三個(gè)數(shù)據(jù)

print(data[0:3])

運(yùn)行結(jié)果:['list', 'string', 'dict']#取出全部數(shù)據(jù)

print(data[:])

運(yùn)行結(jié)果:['list', 'string', 'dict', 'tuple']#負(fù)數(shù)取值應(yīng)注意,左邊索引位要比右邊索引位小,按從小到大的方式

print(data[-3:-1])

運(yùn)行結(jié)果:['string', 'dict']#可以使用步長(zhǎng)取值

print(data[0:3:2])

運(yùn)行結(jié)果:['list', 'dict']#倒序取值時(shí),要注意步長(zhǎng)應(yīng)使用負(fù)數(shù),且不能為0

print(data[3:1:-1])

運(yùn)行結(jié)果:['tuple', 'dict']

"對(duì)于一個(gè)正數(shù)步長(zhǎng),Python會(huì)從頭開始向右取值,直到最后一個(gè)元素。對(duì)于一個(gè)負(fù)數(shù)步長(zhǎng),則是從序列的尾部開始向左取值,直到元素的第一個(gè)元素"

3,序列的加乘操作

使用加操作可以使兩個(gè)列表連接到一起,需要注意的是,在使用加操作的時(shí)候左右兩邊的數(shù)據(jù)必須是同一類型,不同類型的數(shù)據(jù)不能進(jìn)行連接操作。

#列表的連接操作

data=["list","string","dict","tuple"]

data1=[0,1,2,3]

data3="hello world"

#列表的加操作,連接兩個(gè)列表、

print(data+data1)

運(yùn)行結(jié)果:['list', 'string', 'dict', 'tuple', 0, 1, 2, 3]#測(cè)試列表可以與不同類型的值相連接

print(data+data3)

運(yùn)行結(jié)果:TypeError: can only concatenate list (not "str") to list

列表的乘操作

print(data*3)

運(yùn)行結(jié)果:

['list', 'string', 'dict', 'tuple', 'list', 'string', 'dict', 'tuple', 'list', 'string', 'dict', 'tuple']

三,列表

1,list函數(shù)

使用list函數(shù)可以改變一些數(shù)據(jù)的數(shù)據(jù)類型:例如字符串,元組等

#使用list函數(shù)轉(zhuǎn)變數(shù)據(jù)類型

data="hello world"

print(list(data))

運(yùn)行結(jié)果:

['h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd']

2,列表元素賦值

列表的元素賦值使用索引號(hào)進(jìn)行修改,需要注意,我們不能為一個(gè)不存在的索引號(hào)賦值

列表的賦值操作

data=["list","string","dict","tuple"]print(data)

data[-1]="value"

print(data)

運(yùn)行結(jié)果

原列表內(nèi)容:['list', 'string', 'dict', 'tuple']

修改后內(nèi)容:['list', 'string', 'dict', 'value']

列表元素分片賦值操作,分片操作可以給一個(gè)空列表賦值,也可以為列表做分片替換

#分片賦值

data=["list","string","dict","tuple","int"]

data[:2]=["list1","string1"]print(data)

運(yùn)行結(jié)果:

['list1', 'string1', 'dict', 'tuple', 'int']#使用分片賦值的原理,對(duì)列表進(jìn)行刪除元素操作

data=["list","string","dict","tuple","int"]#data[:]表示列表所有元素

data[:]=[]print(data)

運(yùn)行結(jié)果 : []空列表

2,刪除列表元素

刪除列表元素使用del關(guān)鍵字加索引號(hào)進(jìn)行操作,索引號(hào)超出列表范圍將報(bào)錯(cuò)

#刪除列表元素操作,使用del關(guān)鍵字

data=["list","string","dict","tuple"]print(data)del data[1]print(data)

運(yùn)行結(jié)果

原列表內(nèi)容:['list', 'string', 'dict', 'tuple']

刪除后內(nèi)容:['list', 'dict', 'tuple']

3,列表操作

1,append

此方法用于別表末尾添加值,它操作后的列表不是一個(gè)修改過的新列表(類似拷貝的原理,會(huì)有專門內(nèi)容介紹),而是返回一個(gè)修改過的原列表。

#append方法

data=["list","string","dict","tuple","int"]print(data)

data.append("float")print(data)

原列表內(nèi)容:['list', 'string', 'dict', 'tuple', 'int']

添加后的內(nèi)容:['list', 'string', 'dict', 'tuple', 'int', 'float']

2,count

此方法統(tǒng)計(jì)某個(gè)元素在列表中出現(xiàn)的次數(shù)。

#count方法

data=["list","string","dict","tuple","int","int"]print(data.count("int"))

運(yùn)行結(jié)果:2

3.extend

此方法可以在列表末尾一次性添加另一個(gè)序列的多個(gè)值,可以擴(kuò)展原列表,而不是復(fù)制出一個(gè)新列表

#extend

data=["list","string","dict","tuple","int"]

data2=["list1","string1"]print(data)

data.extend(data2)print(data)

運(yùn)行結(jié)果:

原data列表:['list', 'string', 'dict', 'tuple', 'int']

擴(kuò)展后data列表:['list', 'string', 'dict', 'tuple', 'int', 'list1', 'string1']

此方法對(duì)比列表連接操作的不同,連接操作不會(huì)在原有列表上進(jìn)行擴(kuò)展,只會(huì)創(chuàng)建一個(gè)新的列表。

data=["list","string","dict","tuple","int"]

data2=["list1","string1"]print(data+data2)print(data)

運(yùn)行結(jié)果:

['list', 'string', 'dict', 'tuple', 'int', 'list1', 'string1']

['list', 'string', 'dict', 'tuple', 'int']

從結(jié)果可以看出,data列表并沒有被覆蓋,而是創(chuàng)建了一個(gè)新列表

4,index

index方法用于從列表中查找出某個(gè)元素第一次匹配成功后的索引位置

#index方法

data=['list', 'string', 'dict', 'tuple', 'int']print(data.index("int"))

運(yùn)行結(jié)果:4 返回一個(gè)索引位

5,insert

insert方法用于將對(duì)象插入到列表中,插入位置的值會(huì)自動(dòng)向后移位,在添加新值后,原列表后進(jìn)行擴(kuò)展操作,原列表將被覆蓋。

#insert方法

data=['list', 'string', 'dict', 'tuple', 'int']

data.insert(0,"string")print(data)

運(yùn)行結(jié)果:

['string', 'list', 'string', 'dict', 'tuple', 'int']

6,pop

pop方法,默認(rèn)刪除列表最后一個(gè)值,并且返回刪除的值,也可以根據(jù)索引位刪除指定值,且返回被刪除數(shù)值的值。

此方法配合insert方法可以實(shí)現(xiàn)隊(duì)列操作,使用insert(0)添加值,使用pop(0)刪除值,實(shí)現(xiàn)一個(gè)先進(jìn)先出的隊(duì)列,也可以使用append方法,使用pop方法,實(shí)現(xiàn)一個(gè)先進(jìn)后出的隊(duì)列

放入和移出操作就是入棧和出棧,python可以使用append方法進(jìn)行入棧操作,pop方法模擬出棧操作

#pop方法

data=['list', 'string', 'dict', 'tuple', 'int']print(data.pop())#默認(rèn)刪除最后一個(gè)值

print(data.pop(1))#指定刪除索引位1的值

運(yùn)行結(jié)果:

int

string

在指定索引位時(shí),不能超出列表長(zhǎng)度,否則報(bào)錯(cuò)

pop方法是唯一一個(gè)既能刪除一個(gè)值又能返回該元素值的列表方法

一個(gè)先進(jìn)先出隊(duì)列的實(shí)現(xiàn)示例:

#先進(jìn)先出的隊(duì)列實(shí)現(xiàn)

data=[]for i in range(4):

data.insert(0,i)print(data)print(data.pop(0))print(data)

運(yùn)行結(jié)果:

添加值后的列表 [0]

取出的值 0

取出值后的列表 []

添加值后的列表 [1]

取出的值1取出值后的列表 []

一個(gè)先進(jìn)后出的隊(duì)列實(shí)現(xiàn):

#先進(jìn)后出的隊(duì)列實(shí)現(xiàn)

data=[5,]for i in range(2):

data.insert(0,i)print("添加值后的列表",data)print("取出的值",data.pop())print("取出值后的列表",data)

運(yùn)行結(jié)果:

添加值后的列表 [0,5]

取出的值5取出值后的列表 [0]

添加值后的列表 [1, 0]

取出的值 0

取出值后的列表 [1]

7,remove

remove方法用于移除列表中某元素第一個(gè)匹配項(xiàng):它移除后不會(huì)返回一個(gè)刪除元素的值

#remove方法

data=['list', 'string', 'dict', 'tuple', 'int']

data.remove("int")print(data)

運(yùn)行結(jié)果:

['list', 'string', 'dict', 'tuple']

8,reverse

reverse方法將列表中的元素反向存放,要想取值,使用reversed,此方法返回一個(gè)迭代器

#reverse

data=[1,2,3,4,5]print(data.reverse())

redata=data.reverse()#測(cè)試后,reverse沒有返回值

print(redata)#要想取得返回值,使用reserved,返回一個(gè)迭代器

a=reversed(data)print(a)#

for i ina:print(i)

9,sort

sort方法用于在原位置對(duì)列表進(jìn)行排序,會(huì)改變?cè)斜?#xff0c;是列表元素按一定順序排列。這個(gè)方法總是產(chǎn)生一個(gè)列表,所以他可以對(duì)任何序列進(jìn)行操作排序

#sort

data=[2,5,7,8,5,3,1,4]

data.sort()print(data)

運(yùn)行結(jié)果:

[1, 2, 3, 4, 5, 5, 7, 8]

sort方法沒有返回值,它會(huì)改變?cè)斜淼闹档捻樞颉?/p>

列表的使用就到這里,到后邊會(huì)介紹列表生成式,和列表推導(dǎo)式的使用

總結(jié)

以上是生活随笔為你收集整理的python数据结构的列表_Python数据结构之列表的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。