我有一个问题要跟踪大量值。如果我从未遇到过该值,则将执行操作A,否则将执行操作B。自然地,我考虑使用字典来跟踪值,因为查找速度很快〜O(1)。
但是,字典是一个键值系统,而我想利用的只是键。 我可以分配一个伪造的值
"myvalue": None
但是我不禁想知道是否还有一种更优雅的方式来解决它。
有什么想法吗?有想法吗? 谢谢!
答案 0 :(得分:3)
这就是set
的用途:
members = set()
members.add("mykey")
members.add("otherkey")
if "mykey" in members:
. . .
答案 1 :(得分:1)
如果我坚持执行您的dict,我会:
if value in dict:
#Action B
else:
#Action A
dict[value] = 1
这样一来,您就无需在字典中保存看不见的值。
答案 2 :(得分:1)
最适合您的任务的是frozenset()。
frozenset
类型是不可变且可哈希的-其内容不能为 创建后已更改;因此可以用作字典 键或作为另一个集合的元素。
members = frozenset([keylist])
if "mykey" in members:
根据您的问题,这是最适合您的python任务的收集形式。