我期望Python的keys方法返回一个集合而不是一个列表。因为它最类似于哈希映射键将提供的保证类型。具体来说,它们是唯一的而不是像集合一样排序的。但是,此方法返回一个列表:
>>> d = {}
>>> d.keys().__class__
<type 'list'>
这仅仅是Python API中的错误,还是我缺少其他原因?
Answers:
原因之一是dict.keys()
在语言引入集合之前。
请注意,dict.keys()
Python 3中的的返回类型已更改:函数现在返回的是“类似集合”的视图,而不是列表。
对于组样的观点,都为抽象基类中定义的操作的
collections.abc.Set
是可用的(例如,==
,<
,或^
)。
set()
!允许dict.keys() | set()
操作。Py3岩石:)
dict.viewkeys()
并将其与set操作一起使用来进行相同操作|
,&
...