91aaa在线国内观看,亚洲AV午夜福利精品一区二区,久久偷拍人视频,久久播这里有免费视播

<strong id="fvuar"></strong>

  • <sub id="fvuar"><dl id="fvuar"><em id="fvuar"></em></dl></sub>

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

      手機(jī)站
      千鋒教育

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

      千鋒教育

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

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

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

      當(dāng)前位置:首頁  >  技術(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])#擴(kuò)展

      foo.remove(10)#移除

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

      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對象還可作為字典的鍵

      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ù),當(dāng)做沒有字段名的記錄來用,比如用tuple來記錄一個人的身高、體重、年齡。

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

      比如記錄坐標(biāo)上的某個點

      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可以指定字段名,用來當(dāng)做一種輕量級的類來使用。

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

      聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
      10年以上業(yè)內(nèi)強師集結(jié),手把手帶你蛻變精英
      請您保持通訊暢通,專屬學(xué)習(xí)老師24小時內(nèi)將與您1V1溝通
      免費領(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