python - 除了 dict、list、set 和 tuple 之外,还有没有内置的容器?
解决方案
从技术上讲,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__
, 和_
将给出相同的结果。
推荐阅读
- swift4 - 使用 audiokit 接收 Sysex 消息
- ruby-on-rails - 在 Rails 中查看用户通过 Facebook 注册的天气
- python - 从 PDF 自动打印页面
- java - 实现 MVC
- php - 'where子句'中的未知列'this'
- php - 修改并添加到 MySQL 结果
- react-native - React Native Multiple fetch vs Filter
- node.js - 在 mac 上“nvm 使用”后节点版本未更新
- linux - SSH 权限被拒绝(公钥)
- ansible - 从 gitlabci 运行 Ansible playbook 命令