Python是否只包含3种集合类型?

Python是否只包含3种集合类型?,python,python-3.x,Python,Python 3.x,这些是Python 3.x中唯一的集合类型吗 名单 设置 字典 从文档部分看,似乎只有三种。不,Python支持更多的集合类型。例如,您错过了元组、deq、字符串和字节 实际上,这种可能性是无限的,因为您可以通过实现一些特殊的方法将任何对象作为一个集合,并且您还可以将大多数内置序列时间子类化。取决于您的意思,“in” 其中四个在Python中具有特殊地位,因为它们在语言级别上有自己的语法。它们是元组(x,…),列表[x,…],集合{x,…}和dicts{x':value,…}(如果你想将字符串作

这些是Python 3.x中唯一的集合类型吗

  • 名单
  • 设置
  • 字典

  • 从文档部分看,似乎只有三种。不,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)。