日韩欧乱色一区二区三区在线_久久―日本道色综合久久_欧美日本一区二区_网曝91综合精品门事件在线

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

手機(jī)站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機(jī)站

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

關(guān)注千鋒學(xué)習(xí)站小程序
隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

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

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

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

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

相同點(diǎn):都是序列類型

回答它們的區(qū)別之前,先來說說兩者有什么相同之處。list與tuple都是序列類型的容器對(duì)象,可以存放任何類型的數(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è)計(jì)一種叫tuple的類型出來呢?這就要從它們的不同之處來尋找答案。

不同點(diǎn)一:不可變VS可變

兩種類型除了字面上的區(qū)別(括號(hào)與方括號(hào))之外,最重要的一點(diǎn)是tuple是不可變類型,大小固定,而list是可變類型、數(shù)據(jù)可以動(dòng)態(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])#擴(kuò)展

foo.remove(10)#移除

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

foo.append(5)#追加

所有的操作都基于原來列表進(jìn)行更新,而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對(duì)象還可作為字典的鍵

foo=(1,(2,3))

d={foo:1}

bar=(1,[2,3])#非原子性tuple,因?yàn)樵M中包含有不可哈希的list

d={bar:1}

Traceback(mostrecentcalllast):

File“”,line1,in

TypeError:unhashabletype:‘list’

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

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

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

比如記錄坐標(biāo)上的某個(gè)點(diǎn)

point=(x,y)

而列表一般用于存儲(chǔ)同構(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)。

因?yàn)閠uple作為沒有名字的記錄來使用在某些場景有一定的局限性,所以又有了一個(gè)namedtuple類型的存在,namedtuple可以指定字段名,用來當(dāng)做一種輕量級(jí)的類來使用。

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

聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
請(qǐng)您保持通訊暢通,專屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
免費(fèi)領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
主站蜘蛛池模板: 大竹县| 青田县| 徐州市| 陵川县| 额尔古纳市| 秭归县| 定兴县| 靖宇县| 凤山市| 乐东| 兖州市| 西和县| 黄龙县| 铁岭县| 额尔古纳市| 红原县| 绥阳县| 靖远县| 余庆县| 拜泉县| 蚌埠市| 新泰市| 东台市| 上思县| 白朗县| 武冈市| 九龙县| 宜兴市| 喀什市| 夹江县| 辽阳市| 遂昌县| 商河县| 嘉荫县| 淮阳县| 大石桥市| 澳门| 石渠县| 赤水市| 扶沟县| 霍邱县|