千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構(gòu)

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術(shù)干貨  > python列表和元祖之間的區(qū)別

python列表和元祖之間的區(qū)別

來源:千鋒教育
發(fā)布人:xqq
時間: 2023-11-10 20:24:38 1699619078

python列表和元組的區(qū)別如下

相同點:都是序列類型

回答它們的區(qū)別之前,先來說說兩者有什么相同之處。list與tuple都是序列類型的容器對象,可以存放任何類型的數(shù)據(jù)、支持切片、迭代等操作

foos=[0,1,2,3,4,5,6,7,8,9]

foos[0:10:2]

[0,2,4,6,8]

bars=(0,1,2,3,4,5,6,7,8,9)

bars[1:10:2]

(1,3,5,7,9)

兩者的操作如此相似,Python為什么還要設(shè)計一種叫tuple的類型出來呢?這就要從它們的不同之處來尋找答案。

不同點一:不可變VS可變

兩種類型除了字面上的區(qū)別(括號與方括號)之外,最重要的一點是tuple是不可變類型,大小固定,而list是可變類型、數(shù)據(jù)可以動態(tài)變化,這種差異使得兩者提供的方法、應(yīng)用場景、性能上都有很大的區(qū)別。

列表特有方法:

foo=[2,3,1,9,4]

foo.sort()#排序

foo.insert(5,10)#插入

foo.reverse()#反轉(zhuǎn)

foo.extend([-1,-2])#擴展

foo.remove(10)#移除

foo.pop()#彈出最后一個元素

foo.append(5)#追加

所有的操作都基于原來列表進行更新,而tuple作為一種不可變的數(shù)據(jù)類型,同樣大小的數(shù)據(jù),初始化和迭代tuple都要快于list

python-mtimeit“[1,2,3,4,5]”

10000000loops,bestof3:0.123usecperloop

python-mtimeit“(1,2,3,4,5)”

100000000loops,bestof3:0.0166usecperloop

同樣大小的數(shù)據(jù),tuple占用的內(nèi)存空間更少

foo=tuple(range(1000))

bar=list(range(1000))

foo.sizeof()

8024

bar.sizeof()

9088

原子性的tuple對象還可作為字典的鍵

foo=(1,(2,3))

d={foo:1}

bar=(1,[2,3])#非原子性tuple,因為元組中包含有不可哈希的list

d={bar:1}

Traceback(mostrecentcalllast):

File“”,line1,in

TypeError:unhashabletype:‘list’

不同點二:同構(gòu)VS異構(gòu)

tuple用于存儲異構(gòu)(heterogeneous)數(shù)據(jù),當做沒有字段名的記錄來用,比如用tuple來記錄一個人的身高、體重、年齡。

person=(“zhangsan”,20,180,80)

比如記錄坐標上的某個點

point=(x,y)

而列表一般用于存儲同構(gòu)數(shù)據(jù)(homogenous),同構(gòu)數(shù)據(jù)就是具有相同意義的數(shù)據(jù),比如下面的都是字符串類型

[“zhangsan”,“Lisi”,“wangwu”]

再比如list存放的多條用戶記錄

[(“zhangsan”,20,180,80),(“wangwu”,20,180,80)]

數(shù)據(jù)庫操作中查詢出來的記錄就是由元組構(gòu)成的列表結(jié)構(gòu)。

因為tuple作為沒有名字的記錄來使用在某些場景有一定的局限性,所以又有了一個namedtuple類型的存在,namedtuple可以指定字段名,用來當做一種輕量級的類來使用。

以上內(nèi)容為大家介紹了python培訓之列表和元祖之間的區(qū)別,希望對大家有所幫助,如果想要了解更多Python相關(guān)知識,請關(guān)注IT培訓機構(gòu):千鋒教育。

tags: python培訓
聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強師集結(jié),手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內(nèi)將與您1V1溝通
免費領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學 138****2860 剛剛成功領(lǐng)取
王同學 131****2015 剛剛成功領(lǐng)取
張同學 133****4652 剛剛成功領(lǐng)取
李同學 135****8607 剛剛成功領(lǐng)取
楊同學 132****5667 剛剛成功領(lǐng)取
岳同學 134****6652 剛剛成功領(lǐng)取
梁同學 157****2950 剛剛成功領(lǐng)取
劉同學 189****1015 剛剛成功領(lǐng)取
張同學 155****4678 剛剛成功領(lǐng)取
鄒同學 139****2907 剛剛成功領(lǐng)取
董同學 138****2867 剛剛成功領(lǐng)取
周同學 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
久久亚洲中文字幕精品一区四,亚洲日本另类欧美一区二区,久久久久久久这里只有免费费精品,高清国产激情视频在线观看
日本三级2020高潮 | 午夜在线不卡精品国产 | 最新亚洲精品视频在线 | 日本免费一区二区久久人人澡 | 日本亚洲欧美高清专区vr专区 | 亚洲国产性色在线 |