如果我们想从一个集合中构造一个列表,我们可以
[k for k in set]
这是O(n)操作,同时:
dict.keys()
是O(1)
根据https://www.ics.uci.edu/~pattis/ICS-33/lectures/complexitypython.txt
因此,据我所知,dict使用set作为其底层数据结构的键,是list(set)
O(1)吗?这是如何实现的?你知道吗
a = set(range(n))
s = list(a) # is this operation O(1)?
Tags:
嗯,不是真的。与此相反的是一个更接近的类比:在实现中,
set
就像一个dict
具有所有空值。dict
在Python中是第一个出现的,set
直到python2.2(2000年7月)才出现——参见PEP 218。你知道吗同样值得一提的是,从python3开始,
dict.keys()
就是O(1)。在python2中,它是O(n),您应该使用dict.viewkeys()
作为键“view”(set like interface)。你知道吗不,是O(n)-和列表一样。你知道吗
设置支持the iterator protocol。你知道吗
相关问题 更多 >
编程相关推荐