色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術文章
文章詳情頁

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

瀏覽:51日期:2022-06-30 17:55:33

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

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

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

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)確定不能更改,更無法增加、刪除、修改元素

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

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

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

從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]: 64In [22]: tp.__sizeof__()Out[22]: 48

這里構造了一個list和一個tuple。他們存儲的內(nèi)容是相同的,__sizeof__方法可以打印系統(tǒng)分配空間的大小。可以看到他們所占用的內(nèi)存空間是不同的,存儲的內(nèi)容相同,但是list比tuple多占用了16自己的內(nèi)存。

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

In [23]: l=[]In [24]: l.__sizeof__() // 空列表分配了40字節(jié)的內(nèi)存Out[24]: 40In [25]: l.append(’a’) // 增加了一個一個元素后,給列表分配了72字節(jié)的內(nèi)存,一個字符8個字節(jié)// 那就是一次性分配了4個字符的內(nèi)存空間In [26]: l.__sizeof__()Out[26]: 72In [27]: l.append(’b’) // 再增加字符,占用內(nèi)存不變In [28]: l.__sizeof__()Out[28]: 72In [29]: l.append(’c’) // 再增加字符,占用內(nèi)存不變In [30]: l.__sizeof__()Out[30]: 72In [31]: l.append(’d’) // 再增加字符,占用內(nèi)存不變In [32]: l.__sizeof__()Out[32]: 72In [33]: l.append(’e’) // 再添加元素,內(nèi)存不夠,觸發(fā)重新的內(nèi)存分配In [34]: l.__sizeof__()Out[34]: 104

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

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

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

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 中文成人在线视频 | 久99频这里只精品23热 视频 | 成人免费视频软件网站 | 一道精品视频一区二区三区图片 | 国产自精品在线 | 久久久久久久国产精品影院 | 精品成人在线观看 | 老司机午夜在线视频免费观 | 免费a级在线观看播放 | 99精品高清视频一区二区 | 国产片18在线观看 | 国产欧美成人xxx视频 | 国产成人精品午夜 | 不卡一区在线观看 | 欧美怡红院在线 | 欧日韩视频 | 日韩 欧美 中文 亚洲 高清 在线 | h亚洲| 国产精品特黄一级国产大片 | 成人免费视频一区二区 | 婷婷丁香花麻豆 | 日韩美女强理论片 | 久草热久草视频 | 国产精品一久久香蕉国产线看 | 美女一级毛片免费看看 | 国产欧美日韩在线人成aaaa | 欧美性妇 | 一级高清毛片免费a级高清毛片 | 国产成人亚洲综合欧美一部 | 亚洲男同可播放videos | 欧美高清另类自拍视频在线看 | 国产在线不卡免费播放 | 日韩色吧| 亚洲精品二区 | 老司机免费福利午夜入口ae58 | 美女张开腿让男人桶爽免 | 自拍 欧美 在线 综合 另类 | 欧美日韩一区二区在线视频 | 一本色道久久88亚洲综合 | 久久男人的天堂 | 蜜桃欧美性大片 |