成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

python|列表和元組有什么區(qū)別

rubyshen / 3510人閱讀

摘要:如果有了解過(guò)中的列表和元組,你可能會(huì)知道相對(duì)于列表,元組是不可變的,也就是說(shuō)元組中的數(shù)據(jù)不能隨意更改。同時(shí),我們用列表來(lái)表示這些位置,如果有新的位置,可以加入列表。

如果有了解過(guò)python中的列表和元組,你可能會(huì)知道相對(duì)于列表,元組是不可變的,也就是說(shuō)元組中的數(shù)據(jù)不能隨意更改。除了列表是用中括號(hào)表示而元組是用小括號(hào)表示之外,這兩種數(shù)據(jù)類型好像并沒(méi)有什么不同,都是用來(lái)存放一系列的數(shù)據(jù),事實(shí)真是如此嗎?

a = [1, 3, 5, 7, "a"]

b = (1, 3, 5, 7, "b")

# 現(xiàn)在改變b中的值
b[2] = 4
---------------------------------------------------------------------------

TypeError                                 Traceback (most recent call last)

 in ()
      4 
      5 # 現(xiàn)在改變b中數(shù)據(jù)的值
----> 6 b[2] = 4


TypeError: "tuple" object does not support item assignment

看起來(lái)除了元組不可變之外,列表完全可以取代元組,為什么要多此一舉創(chuàng)造出元組這種類型?其實(shí)這背后有更深層的含義,列表是用來(lái)表示一組相同類型(相同價(jià)值)的數(shù)據(jù),而元組用來(lái)存放不同類型(不同價(jià)值)的數(shù)據(jù),簡(jiǎn)單來(lái)說(shuō),列表是同質(zhì)的,而元組是異構(gòu)的。

比如說(shuō),現(xiàn)在有一本書,書里面有一些批注。我們用元組來(lái)表示書中第幾頁(yè)第幾行的內(nèi)容,像這樣:position = (page, line),然后把它放到字典里作為批注的鍵,表示第幾頁(yè)第幾行有批注。同時(shí),我們用列表來(lái)表示這些位置,如果有新的位置,可以加入列表。這符合列表可以更改數(shù)據(jù)的特點(diǎn)。但是如果更改元組里面的數(shù)據(jù)就沒(méi)有意義了,因?yàn)檫@些坐標(biāo)本來(lái)就是存在的。

在python的模塊中,我們可以找到很多例子:

range(10)
range(0, 10)


比如range方法用來(lái)生成一列有序地?cái)?shù)據(jù),這些數(shù)據(jù)是等價(jià)的,并沒(méi)有不同的功能,所以用列表來(lái)表示最合適。而像下面的例子:

from datetime import datetime
datetime.now()
datetime.datetime(2017, 12, 17, 20, 23, 13, 578752)


當(dāng)前時(shí)間適合用元組來(lái)表式,因?yàn)樵M中每個(gè)數(shù)據(jù)有不同的功能,或者說(shuō)有不同的價(jià)值,像第一個(gè)數(shù)據(jù)表示年份。

說(shuō)到這,想起了我們之前說(shuō)過(guò)的具名元組nametuple,它用來(lái)快速的生成一個(gè)類,可以看成是類的輕量級(jí)替代方法,也很符合我們上面說(shuō)的元組的功能。


本人才疏學(xué)淺,上文中難免有些錯(cuò)誤,還請(qǐng)各位品評(píng)指正。如果覺(jué)得寫的還行,歡迎關(guān)注我的公眾號(hào)MLGroup,帶你走進(jìn)機(jī)器學(xué)習(xí)的世界。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/41078.html

相關(guān)文章

  • Java與Python詳細(xì)對(duì)比

    摘要:序列化的這種過(guò)程,我們將其稱為腌制。而把模塊編譯成二進(jìn)制語(yǔ)言程序的這個(gè)過(guò)程叫做字節(jié)編譯,這個(gè)過(guò)程會(huì)產(chǎn)生一個(gè)與編譯的模塊對(duì)應(yīng)的文件。 常量: 在Python中常量的使用并不像java等其他編程語(yǔ)言一樣有特定的常量實(shí)現(xiàn)的關(guān)鍵字,在Python中定義需要用對(duì)象的方法來(lái)創(chuàng)建。 showImg(https://segmentfault.com/img/bVP6mZ?w=1232&h=703); ...

    tianhang 評(píng)論0 收藏0
  • Java與Python詳細(xì)對(duì)比

    摘要:序列化的這種過(guò)程,我們將其稱為腌制。而把模塊編譯成二進(jìn)制語(yǔ)言程序的這個(gè)過(guò)程叫做字節(jié)編譯,這個(gè)過(guò)程會(huì)產(chǎn)生一個(gè)與編譯的模塊對(duì)應(yīng)的文件。 常量: 在Python中常量的使用并不像java等其他編程語(yǔ)言一樣有特定的常量實(shí)現(xiàn)的關(guān)鍵字,在Python中定義需要用對(duì)象的方法來(lái)創(chuàng)建。 showImg(https://segmentfault.com/img/bVP6mZ?w=1232&h=703); ...

    sydMobile 評(píng)論0 收藏0
  • Python 爬蟲面試題 170 道:2019 版

    摘要:下面代碼會(huì)存在什么問(wèn)題,如何改進(jìn)一行代碼輸出之間的所有偶數(shù)。簡(jiǎn)述進(jìn)程之間如何通信多路復(fù)用的作用模型的區(qū)別什么是并發(fā)和并行解釋什么是異步非阻塞的作用面試題說(shuō)說(shuō)你知道的命令如何查看某次提交修改的內(nèi)容答案掃碼下面的二維碼訂閱即可獲取。 引言 最近在刷面試題,所以需要看大量的 Python 相關(guān)的面試題,從大量的題目中總結(jié)了很多的知識(shí),同時(shí)也對(duì)一些題目進(jìn)行拓展了,但是在看了網(wǎng)上的大部分面試題不...

    trigkit4 評(píng)論0 收藏0
  • 100 個(gè)基本 Python 面試問(wèn)題第二部分(41-60)

    摘要:回到目錄評(píng)論區(qū)抽粉絲送書啦歡迎大家在評(píng)論區(qū)提出意見(jiàn)和建議抽兩位幸運(yùn)兒送書,實(shí)物圖如下開(kāi)發(fā)從入門到精通內(nèi)容簡(jiǎn)介案例教學(xué)。 ? 作者主頁(yè):海擁 ? 作者簡(jiǎn)介:?CSDN...

    Tikitoo 評(píng)論0 收藏0
  • 開(kāi)課吧Python全棧工程師培養(yǎng)計(jì)劃

    摘要:列表和元組都支持切片操作都可以隨意嵌套列表是動(dòng)態(tài)的,長(zhǎng)度可變,可以隨意的增加刪減或改變?cè)?。每行最大長(zhǎng)度請(qǐng)限制在個(gè)字符全局的類和函數(shù)的上方需要空兩個(gè)空行,而類的函數(shù)之間需要空一個(gè)空行 03 | 列表和元組,到底用哪一個(gè)?列表和元組,都是一個(gè)可以放置任意數(shù)據(jù)類型的有序集合,與其它語(yǔ)言相比較,集合的數(shù)據(jù)類型不要求一致列表是動(dòng)態(tài)...

    stefan 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<