2015-10-02 64 views
-7

這些是Python 3.x中唯一的集合類型嗎?Python是否只包含3種集合類型?

  1. 列表
  2. 字典

從文檔Data Structures部分,有似乎是隻有三個。

+4

順便說一下,該鏈接指向2.x版本。 – Ffisegydd

+1

字符串計數?元組?內置模塊中沒有的類型,例如'collections.deque'? – Kevin

+0

查看'collections' [module](https://docs.python.org/3.4/library/collections.html)。 – siegerts

回答

3

不,Python支持更多的集合類型。例如,您錯過了元組,deq,字符串和字節。

事實上,可能性是無限的,因爲你可以通過實現一些特殊的方法使任何對象成爲一個集合,並且你可以繼承大部分內置的序列時間。

0

取決於你的意思,「在」。

四在Python中有特殊的地位,因爲它們在語言級別有自己的語法。他們是元組(x,...),列出[x,...],設置{ x, ...}和類型的字典{'x':value,...}(五,如果你想包括字符串作爲收藏:我不會說,但如果這樣做,這裏還有Python 2裏的Unicode製作爲六個)

我相信,陣列模塊在解釋器級別具有特殊狀態。數組的處理遠比列表更有效。 array.array也是特殊的,它不叫array.Array?大多數python數字運算和數據分析代碼都將它用於它們自己的對象定義中。

您可以定義任何您想要的對象,從內建繼承,或導入其他人的有用對象定義。集合模塊是「有福」的,因爲它默認使用Python(「包含電池」)(和數組一樣)。集合還包含很多mixin方法,可以幫助構建自己的集合對象。

沒有真正的相關性,但爲什麼很少有人似乎知道字典構造函數的多功能性,並節省自己很多乏味的標點符號或循環?可能只是因爲存在{"k":"v",...}語法。

 x = dict(a=1, b='hello', **otherdict) 
     y = dict(zip(keyslist, valueslist)) # [(key1,val1), (k2,val2), ...] 
+0

我不會編輯作弊。我錯過了字節(如字符串:'b'...''語法)。 – nigel222

相關問題