6b[2]=" />

日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

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

系統(tǒng) 1764 0

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

            
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
              
            
          

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

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

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

            
range(10)
          
            
range(0, 10)
          

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

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

當前時間適合用元組來表式,因為元組中每個數(shù)據(jù)有不同的功能,或者說有不同的價值,像第一個數(shù)據(jù)表示年份。

說到這,想起了我們之前說過的具名元組nametuple,它用來快速的生成一個類,可以看成是類的輕量級替代方法,也很符合我們上面說的元組的功能。


更多文章、技術交流、商務合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 大名县| 蚌埠市| 高雄县| 巴林右旗| 东安县| 托克逊县| 楚雄市| 南充市| 宝鸡市| 宁明县| 宾阳县| 安远县| 稷山县| 左权县| 息烽县| 遂平县| 饶阳县| 新龙县| 林西县| 西盟| 永安市| 澎湖县| 图们市| 福泉市| 拉孜县| 义乌市| 资溪县| 孟连| 南涧| 资中县| 伊吾县| 丰宁| 合阳县| 博湖县| 习水县| 泰顺县| 辽阳县| 永胜县| 额尔古纳市| 冕宁县| 九江市|