我检查了这个链接,该集是可变的https://docs.python.org/3/library/stdtypes.html#frozenset https://docs.python.org/3/library/stdtypes.html#frozenset而 freezeset 是不可变的,因此是可哈希的。那么集合在Python中是如何实现的,元素查找时间是多少呢?实际上,我有一个元组列表 [(1,2),(3,4),(2,1)],其中元组中的每个条目都是一个 id,我想从此列表中创建一个集合/冻结集。在这种情况下,集合应包含 (1,2,3,4) 作为元素。我可以使用 freezeset 从元组列表中逐个插入元素,还是只能使用集合?
您可以从生成器表达式或其他可迭代对象实例化冻结集。在实例化完成之前,它并不是一成不变的。
>>> L = [(1,2),(3,4),(2,1)]
>>> from itertools import chain
>>> frozenset(chain.from_iterable(L))
frozenset([1, 2, 3, 4])
Python3.3 还进行了一项优化,当用作集合的右侧时,会将诸如 {1, 2, 3, 4} 之类的集合文字转换为预先计算的冻结集合。in
操作员。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)