Python是否只包含3种集合类型?
这些是Python 3.x中唯一的集合类型吗Python是否只包含3种集合类型?,python,python-3.x,Python,Python 3.x,这些是Python 3.x中唯一的集合类型吗 名单 设置 字典 从文档部分看,似乎只有三种。不,Python支持更多的集合类型。例如,您错过了元组、deq、字符串和字节 实际上,这种可能性是无限的,因为您可以通过实现一些特殊的方法将任何对象作为一个集合,并且您还可以将大多数内置序列时间子类化。取决于您的意思,“in” 其中四个在Python中具有特殊地位,因为它们在语言级别上有自己的语法。它们是元组(x,…),列表[x,…],集合{x,…}和dicts{x':value,…}(如果你想将字符串作
从文档部分看,似乎只有三种。不,Python支持更多的集合类型。例如,您错过了元组、deq、字符串和字节 实际上,这种可能性是无限的,因为您可以通过实现一些特殊的方法将任何对象作为一个集合,并且您还可以将大多数内置序列时间子类化。取决于您的意思,“in” 其中四个在Python中具有特殊地位,因为它们在语言级别上有自己的语法。它们是元组
(x,…)
,列表[x,…]
,集合{x,…}
和dicts{x':value,…}
(如果你想将字符串作为集合包括在内,我不会争辩,但如果你这么做,Python 2 unicode也会产生六个)
我相信阵列模块在解释器级别具有特殊的地位。数组的处理效率远远高于列表。array.array也很特别,因为它不是array.array?大多数python数字处理和数据分析代码都在自己的对象定义中使用它
您可以将任何其他对象定义为对象、从内置对象继承或导入其他人有用的对象定义。collections模块是“幸运的”,因为它默认附带Python(“包括电池”)(数组也是如此)。集合还包括许多mixin方法,这些方法可能有助于构建您自己的集合对象
不太相关,但为什么很少有人知道dict构造函数的通用性,并为自己节省了大量繁琐的标点或循环?可能,只是因为存在{“k”:“v”,…}
语法
x = dict( a=1, b='hello', **otherdict )
y = dict( zip( keyslist, valueslist)) # [(key1,val1), (k2,val2), ...]
顺便提一下,该链接指向2.x版本。字符串是否算数?元组?关于不在内置模块中的类型,例如
collections.deque
?请查看collections
。我不会用编辑作弊。我漏掉了字节(比如字符串:b'…'
syntax)。