2024-04-29 08:34:33 发布
网友
我需要具有以下属性的类似集合的数据结构:
正在发生的事情:
frozenset([3,1,2,2,3]) -> frozenset(1,2,3)
我需要的是:
frozenset*([3,1,2,2,3]) -> frozenset*(3,1,2)
我想我可以用frozenset,但这两种设置和frozenset都可以 重新排列元素。我想这是为了更快的重复检查? 但无论如何,我不能重新订购
从Python 3.7开始,DICT不再对元素重新排序,而是保证保留插入顺序。您可以使用dict,其中键是设置的项,而值被忽略
>>> dict.fromkeys([3,1,2,2,3]) {3: None, 1: None, 2: None}
dict不是冻结的,因此如果这很关键,那么您可以首先将所有项放入dict,然后从键构建元组
>>> tuple(dict.fromkeys([3,1,2,2,3]).keys()) (3, 1, 2)
这将非常接近frozenset。主要区别在于,检查一个项是否在元组中需要O(n)而不是O(1)时间
frozenset
从Python 3.7开始,DICT不再对元素重新排序,而是保证保留插入顺序。您可以使用dict,其中键是设置的项,而值被忽略
dict不是冻结的,因此如果这很关键,那么您可以首先将所有项放入dict,然后从键构建元组
这将非常接近
frozenset
。主要区别在于,检查一个项是否在元组中需要O(n)而不是O(1)时间相关问题 更多 >
编程相关推荐