最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

簡單了解python列表和元組的區(qū)別

 更新時間:2020年05月14日 10:33:39   作者:測試軒  
這篇文章主要介紹了簡單了解python列表和元組的區(qū)別,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

列表(list)和元組(tuple)的一些基礎

list和tuple都是一個可以放置任意數(shù)據(jù)類型的有序集合,都是既可以存放數(shù)字、字符串、對象等

list和tuple都支持負索引

In [8]: nums[-2]
Out[8]: 'ad'
In [9]: tp[-2]
Out[9]: '33'

list和tuple都支持切片操作

In [10]: nums[1:3]
Out[10]: [3, 'ad']
In [11]: tp[1:3]
Out[11]: (3, '33')

list和tuple都可以隨意嵌套

In [12]: nums = [[1,2,3],['s','ff'],['34',3,5]]
In [13]: tp = ((23,4,'f'),45,'d',('dd',4,'ff'))

list和tuple的一些區(qū)別

列表是動態(tài)的,長度大小不固定,可以隨意的增加、刪除、修改元素元組是靜態(tài)的,長度在初始化的時候就已經(jīng)確定不能更改,更無法增加、刪除、修改元素

從圖中看出我們對list做出修改是成功的,但是對tuple修改的時候,確拋出了錯誤,那如果想對tuple做出改變該如何做呢?只能重新開辟一塊內存,重新生成新到的tuple了。

從tuple的源碼中也可以看出,只有兩個自帶的方法,一個是統(tǒng)計元素出現(xiàn)的次數(shù)一個是查詢元素的索引。

list和tuple存儲方式的差異

我們先來看個例子

In [19]: nums=['a',1,2]
In [20]: tp=('a',1,2)
In [21]: nums.__sizeof__()
Out[21]: 64
In [22]: tp.__sizeof__()
Out[22]: 48

這里構造了一個list和一個tuple。他們存儲的內容是相同的,__sizeof__方法可以打印系統(tǒng)分配空間的大小??梢钥吹剿麄兯加玫膬却婵臻g是不同的,存儲的內容相同,但是list比tuple多占用了16自己的內存。

先來看一下一個數(shù)組的內存分配過程:

In [23]: l=[]

In [24]: l.__sizeof__() // 空列表分配了40字節(jié)的內存
Out[24]: 40

In [25]: l.append('a') // 增加了一個一個元素后,給列表分配了72字節(jié)的內存,一個字符8個字節(jié)
												// 那就是一次性分配了4個字符的內存空間

In [26]: l.__sizeof__()
Out[26]: 72

In [27]: l.append('b') // 再增加字符,占用內存不變

In [28]: l.__sizeof__()
Out[28]: 72

In [29]: l.append('c') // 再增加字符,占用內存不變

In [30]: l.__sizeof__()
Out[30]: 72

In [31]: l.append('d') // 再增加字符,占用內存不變

In [32]: l.__sizeof__()
Out[32]: 72

In [33]: l.append('e') // 再添加元素,內存不夠,觸發(fā)重新的內存分配

In [34]: l.__sizeof__()
Out[34]: 104

可以看出list為了能夠實時追蹤內存的使用情況,當空間不足時以及分配額外空間,額外的多分配了內存,而且還需要存儲指針,指向對應的元素。

我們可以看到,為了減小每次增加 / 刪減操作時空間分配的開銷,Python 每次分配空間時都會額外多分配一些,這樣的機制(over-allocating)保證了其操作的高效性:增加 / 刪除的時間復雜度均為 O(1)。但是對于元組,情況就不同了。元組長度大小固定,元素不可變,所以存儲空間固定。

所以說在存儲大量的數(shù)據(jù)的時候,這種差異是需要考慮的,如果數(shù)據(jù)發(fā)生變更的可能性不大,就用元組存儲,如果數(shù)據(jù)是需要頻繁的進行數(shù)據(jù)的修改增加,就使用列表

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • python實現(xiàn)對文件進行MD5校驗

    python實現(xiàn)對文件進行MD5校驗

    這篇文章主要為大家詳細介紹了如何使用python對文件進行MD5校驗并比對文件重復,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2024-01-01
  • 詳解Python中第三方庫Faker

    詳解Python中第三方庫Faker

    這篇文章主要介紹了Python中第三方庫-Faker的相關知識,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-09-09
  • Python中shapefile轉換geojson的示例

    Python中shapefile轉換geojson的示例

    今天小編就為大家分享一篇關于Python中shapefile轉換geojson的示例,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • Python自然語言處理庫之NLTK庫初級教程

    Python自然語言處理庫之NLTK庫初級教程

    NLTK(Natural Language Toolkit)是一個Python庫,用于實現(xiàn)自然語言處理(NLP)的許多任務,NLTK包括一些有用的工具和資源,如文本語料庫、詞性標注器、語法分析器等,在這篇初級教程中,我們將了解NLTK的基礎功能,需要的朋友可以參考下
    2023-08-08
  • Python函數(shù)參數(shù)定義及傳遞方式解析

    Python函數(shù)參數(shù)定義及傳遞方式解析

    這篇文章主要介紹了Python函數(shù)參數(shù)定義及傳遞方式解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-06-06
  • python 等差數(shù)列末項計算方式

    python 等差數(shù)列末項計算方式

    這篇文章主要介紹了python 等差數(shù)列末項計算方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • 用python獲取txt文件中關鍵字的數(shù)量

    用python獲取txt文件中關鍵字的數(shù)量

    這篇文章主要介紹了如何用python獲取txt文件中關鍵字的數(shù)量,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2020-12-12
  • Python彩色化Linux的命令行終端界面的代碼實例分享

    Python彩色化Linux的命令行終端界面的代碼實例分享

    美化Linux的terminal終端顯示的方法多種多樣,這里我們給出一個利用Python彩色化Linux的命令行終端界面的代碼實例分享,包括一個Linux下簡便執(zhí)行Python程序的方法,需要的朋友可以參考下
    2016-07-07
  • Pytorch 中的optimizer使用說明

    Pytorch 中的optimizer使用說明

    這篇文章主要介紹了Pytorch 中的optimizer使用說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • Python建立Map寫Excel表實例解析

    Python建立Map寫Excel表實例解析

    這篇文章主要介紹了Python建立Map寫Excel表實例解析,具有一定借鑒價值,需要的朋友可以參考下
    2018-01-01

最新評論

江都市| 聂荣县| 临沂市| 南投市| 富裕县| 林甸县| 根河市| 巨鹿县| 晋城| 曲周县| 西吉县| 从化市| 苍南县| 贡山| 丹巴县| 平泉县| 宜城市| 陕西省| 泽库县| 海阳市| 洛隆县| 封开县| 河间市| 永和县| 文化| 崇礼县| 湟源县| 商都县| 大城县| 庆阳市| 延边| 泽州县| 林芝县| 永顺县| 锦州市| 彰化县| 胶南市| 嵊泗县| 香格里拉县| 鄂尔多斯市| 泸州市|