亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python常用數據結構有哪些

發布時間:2021-10-29 15:26:31 來源:億速云 閱讀:213 作者:iii 欄目:編程語言

本篇內容介紹了“Python常用數據結構有哪些”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

Python 常用數據結構學習目的

這個專題,盡量使用最精簡的文字,借助典型案例盤點Python常用的數據結構。

如果你還處于Python入門階段,通常只需掌握list、tuple、set、dict這類數據結構,做到靈活使用即可。

然而,隨著學習的深入,平時遇到實際場景變復雜,很有必要去了解Python內置的更加強大的數據結構deque、heapq、Counter、OrderedDict、defaultDict、ChainMap,掌握它們,往往能讓你少寫一些代碼且能更加高效的實現功能。

Python常用數據結構有哪些

學習目標

  • 學習數據結構第一階段:掌握它們的基本用法,使用它們解決一些基本問題;

  • 學習第二階段:知道何種場景選用哪種最恰當的數據結構,去解決題問題;

  • 學習第三階段:了解內置數據結構的背后源碼實現,與《算法和數據結構》這門學問里的知識聯系起來,打通任督二脈。

下面根據定義的這三個階段,總結以下10種最常用的數據結構:

1. list

基本用法 廢話不多說,在前面單獨有一個專題詳述了list的使用列表專題

使用場景 list 使用在需要查詢、修改的場景,極不擅長需要頻繁插入、刪除元素的場景。

實現原理  list對應數據結構的線性表,列表長度在初始狀態時無需指定,當插入元素超過初始長度后再啟動動態擴容,刪除時尤其位于列表開始處元素,時間復雜度為O(n)

2. tuple

元組是一類不允許添加刪除元素的特殊列表,也就是一旦創建后續決不允許增加、刪除、修改。

基本用法 元組大量使用在打包和解包處,如函數有多個返回值時打包為一個元組,賦值到等號左側變量時解包。

In [22]: t=1,2,3                                          In [23]: type(t)                               Out[23]: tuple

實際創建一個元組實例

使用場景 如果非常確定你的對象后面不會被修改,則可以大膽使用元組。為什么?因為相比于list, tuple實例更加節省內存,這點尤其重要。

In [24]: from sys import getsizeof                                                In [25]: getsizeof(list())                                                       Out[25]: 72 # 一個list實例占用72個字節  In [26]: getsizeof(tuple())                                                      Out[26]: 56 # 一個tuple實例占用56個字節

所以創建100個實例,tuple能節省1K多字節。

3. set

基本用法 set是一種里面不能含有重復元素的數據結構,這種特性天然的使用于列表的去重。

In [27]: a=[3,2,5,2,5,3]                                                          In [28]: set(a)                                                                  Out[28]: {2, 3, 5}

除此之外,還有知道set結構可用于兩個set實例的求交集、并集、差集等操作。

In [29]: a = {2,3,5}                                                              In [30]: b = {3,4,6,2}                                                            In [31]: a.intersection(b) # 求交集                                                       Out[31]: {2, 3}

使用場景 如果只是想緩存某些元素值,且要求元素值不能重復時,適合選用此結構。并且set內允許增刪元素,且效率很高。

實現原理 set在內部將值哈希為索引,然后按照索引去獲取數據,因此刪除、增加、查詢元素效果都很高。

4. dict

基本用法 dict 是Python中使用最頻繁的數據結構之一,字典創建由通過dict函數、{}寫法、字典生成式等,增刪查元素效率都很高。

d = {'a':1,'b':2} # {}創建字典  # 列表生成式 In [38]: d = {a:b for a,b in zip(['a','b'],[1,2])}                               In [39]: d                                                                       Out[39]: {'a': 1, 'b': 2}

使用場景 字典尤其適合在查詢多的場景,時間復雜度為O(1). 如leetcode第一題求解兩數之和時,就會使用到dict的O(1)查詢時間復雜度。

同時,Python類中屬性值等信息也都是緩存在__dict__這個字典型數據結構中。

但是值得注意,dict占用字節數是list、tuple的3、4倍,因此對內存要求苛刻的場景要慎重考慮。

In [40]: getsizeof(dict())                                                       Out[40]: 248

實現原理 字典是一種哈希表,同時保存了鍵值對。

“Python常用數據結構有哪些”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

乐昌市| 英吉沙县| 光山县| 奉节县| 和平县| 桓仁| 定南县| 平罗县| 穆棱市| 商南县| 庄河市| 荆门市| 萨迦县| 观塘区| 乌拉特后旗| 铁岭县| 乐安县| 古丈县| 临颍县| 柳州市| 汶上县| 汤阴县| 郯城县| 辉南县| 武强县| 澳门| 德州市| 东港市| 辛集市| 云龙县| 涪陵区| 万荣县| 贡觉县| 方正县| 越西县| 巴林左旗| 合水县| 连江县| 正安县| 新绛县| 胶州市|