【发布时间】:2017-02-03 09:14:05
【问题描述】:
我在此链接上检查了 set 是可变的 https://docs.python.org/3/library/stdtypes.html#frozenset 而 freezeset 是不可变的,因此是可散列的。那么在python中set是如何实现的,元素查找时间是多少呢?实际上,我有一个元组列表 [(1,2),(3,4),(2,1)],其中元组中的每个条目都是一个 id,我想从这个列表中创建一个集合/冻结集。在这种情况下,集合应包含 (1,2,3,4) 作为元素。我可以使用frozenset从元组列表中一个一个地插入元素还是只能使用一个集合?
【问题讨论】:
-
这纯粹是猜测,但我认为它们都以相同的方式实现,但frozenset 有一个写锁(因此是不变性)。在平均情况下,
frozenset上的查找时间应该更快,考虑到可变性(在sets 中),解释器可能需要更长的探测时间来查找/插入元素。但希望真正知道这一点的人会发布答案 - 我很感兴趣
标签: python