首页 > 解决方案 > 除了 dict、list、set 和 tuple 之外,还有没有内置的容器?

问题描述

dict、list、set 和 tuple 是 Python 的内置容器。

除了上述之外,还有其他内置容器吗?

术语“内置容器”来自doc

标签: python

解决方案


从技术上讲,Python 容器是实现该__contains__方法(source)的任何东西。因此,如果我们只考虑内置函数,而不考虑标准库,我们可以通过这一行得到答案:

>>> [i for i in dir(__builtins__) if hasattr(eval(i), '__contains__')]
['_', '__name__', 'bytearray', 'bytes', 'dict', 'frozenset', 'list', 'range', 'set', 'str', 'tuple']

我们要排除___name__所以完整的列表是:

bytearray, bytes, dict, frozenset, list, range, set, str, 和tuple


或者,

>>> [k for k, v in vars(__builtins__).items() if hasattr(v, '__contains__')]
['__name__', '__doc__', '__package__', 'bytearray', 'bytes', 'dict', 'frozenset', 'list', 'range', 'set', 'str', 'tuple', '_']

删除__name__, __doc__, __package__, 和_将给出相同的结果。


推荐阅读