久久综合九色综合97婷婷-美女视频黄频a免费-精品日本一区二区三区在线观看-日韩中文无码有码免费视频-亚洲中文字幕无码专区-扒开双腿疯狂进出爽爽爽动态照片-国产乱理伦片在线观看夜-高清极品美女毛茸茸-欧美寡妇性猛交XXX-国产亚洲精品99在线播放-日韩美女毛片又爽又大毛片,99久久久无码国产精品9,国产成a人片在线观看视频下载,欧美疯狂xxxx吞精视频

有趣生活

當(dāng)前位置:首頁>職場>python 集合類型的特點(Python數(shù)據(jù)結(jié)構(gòu)一List使用)

python 集合類型的特點(Python數(shù)據(jù)結(jié)構(gòu)一List使用)

發(fā)布時間:2024-01-24閱讀(9)

導(dǎo)讀List是什么?List顧名思義就是列表,那么它具體描述是什么呢?列表是一個線性的集合,它允許用戶在任何位置插入、刪除、訪問和替換元素。在python中l(wèi)i....

python 集合類型的特點(Python數(shù)據(jù)結(jié)構(gòu)一List使用)(1)

List是什么?

List顧名思義就是列表,那么它具體描述是什么呢?

列表是一個線性的集合,它允許用戶在任何位置插入、刪除、訪問和替換元素。在python中l(wèi)ist是保留字,List中的每個元素都有自己的編號,很像C、C 、java中的數(shù)組,但是List更強(qiáng)大。列表主要有以下幾個特點:

  • 列表中元素順序是有序的。比如,你將1,2,3一次存入列表,那個列表中元素順序一定是1,2,3,而不會是其他的。
  • 列表長度不確定。不同于C/C 里的數(shù)組,列表長度不確定,在使用列表時不需要提前聲明長度。
  • 列表中存儲的元素類型可以不唯一。可以將任何東西加入列表中,其中元素之間可以沒有任何關(guān)系。
  • 列表中可以有重復(fù)元素。

python 集合類型的特點(Python數(shù)據(jù)結(jié)構(gòu)一List使用)(2)

List簡單使用

1. 列表創(chuàng)建

創(chuàng)建一個列表,只要把逗號分隔的不同的數(shù)據(jù)項使用方括號括起來即可。如下所示:

此外,如果創(chuàng)建一些常用的數(shù)列等列表,可采取以下pythonic的方法快速創(chuàng)建列表:

2. 列表訪問

列表訪問和其他數(shù)組訪問差不多,常用索引。但是python列表可以切片,可以取指定索引區(qū)間內(nèi)的元素。

3. 操作列表的函數(shù)

  • len(list):列表元素個數(shù)
  • max(list):返回列表元素最大值
  • min(list):返回列表元素最小值
  • list(seq):將元組轉(zhuǎn)換為列表
  • del:刪除列表,釋放內(nèi)存空間

例子:

3. 列表類型定義的函數(shù)

  • list.append(obj):在列表末尾添加新的對象
  • list.count(obj):統(tǒng)計某個元素在列表中出現(xiàn)的次數(shù)
  • list.extend(seq):在列表末尾一次性追加另一個序列中的多個值
  • list.index(obj):從列表中找出某個值第一個匹配項的索引位置
  • list.insert(index, obj):將對象插入列表
  • list.pop(obj=list[-1]):移除列表中的一個元素(默認(rèn)最后一個元素),并返回
  • list.remove(obj):移除列表中某個值的第一個匹配項
  • list.reverse():反向列表中元素
  • list.sort([func]):對原列表進(jìn)行排序

例子:

list一些常見函數(shù)的時間復(fù)雜度

python 集合類型的特點(Python數(shù)據(jù)結(jié)構(gòu)一List使用)(3)

常見函數(shù)的時間復(fù)雜度

python 集合類型的特點(Python數(shù)據(jù)結(jié)構(gòu)一List使用)(4)

【附加閱讀】

底層實現(xiàn)機(jī)制

List對象是用c結(jié)構(gòu)來實現(xiàn),由一個保存元素的指針數(shù)組和預(yù)先分配的內(nèi)存總?cè)萘繕?gòu)成。分離式結(jié)構(gòu),兩者之間用一個元素建立一個鏈接,連在一起。能夠根據(jù)元素的數(shù)量自動的擴(kuò)充或者縮小list的內(nèi)存大小。

要在內(nèi)存中給集合開辟一塊區(qū)域,總得先確定大小(容量),不然如何開辟?另外,確定區(qū)域后,還要知道當(dāng)前已經(jīng)占用了幾個元素(元素個數(shù)),一旦溢出,就需要重新申請空間。要表達(dá)這種結(jié)構(gòu),有兩種實現(xiàn)方式。一種是把頭信息和元素串到一起,形成一個元素個數(shù) 2的表。另一種就是把頭信息和元素分開放,兩者之間用一個元素建立一個鏈接,連在一起。

python 集合類型的特點(Python數(shù)據(jù)結(jié)構(gòu)一List使用)(5)

存儲表信息的單元與元素存儲區(qū)以連續(xù)的方式安排在一塊存儲區(qū)里,兩部分?jǐn)?shù)據(jù)的整體形成一個完整的順序表對象。一體式結(jié)構(gòu)整體性強(qiáng),易于管理。但是由于數(shù)據(jù)元素存儲區(qū)域是表對象的一部分,順序表創(chuàng)建后,元素存儲區(qū)就固定了。

分離式結(jié)構(gòu)中表對象里只保存與整個表有關(guān)的信息(即容量和元素個數(shù)),實際數(shù)據(jù)元素存放在另一個獨立的元素存儲區(qū)里,通過鏈接與基本表對象關(guān)聯(lián)。一旦表需要擴(kuò)充,對于一體式結(jié)構(gòu)來說,就要重新申請一塊更大的空內(nèi)存區(qū)域,將所有元素放入其中,再清空舊的內(nèi)存區(qū)域。對于分離式結(jié)構(gòu)來說,則需要將鏈接地址更新一下,順序表對象是不變的。

List的擴(kuò)充采取兩種策略,每次擴(kuò)充增加固定數(shù)目的存儲位置,這種策略可稱為線性增長,節(jié)省空間,但是擴(kuò)充操作頻繁,操作次數(shù)多。每次擴(kuò)充容量加倍,以空間換時間。從實現(xiàn)上來講,在python中創(chuàng)建空ist時,會申請一個8個元素大小的內(nèi)存區(qū)域。以后如果滿了,就擴(kuò)容4倍,且當(dāng)元素總數(shù)達(dá)到50000時,再擴(kuò)容就改為2倍。

python 集合類型的特點(Python數(shù)據(jù)結(jié)構(gòu)一List使用)(6)

TAGS標(biāo)簽:  python  集合  類型  特點  python 集合類

歡迎分享轉(zhuǎn)載→http://www.avcorse.com/read-215673.html

Copyright ? 2024 有趣生活 All Rights Reserve吉ICP備19000289號-5 TXT地圖HTML地圖XML地圖