Python“无价值”字典

时间:2019-12-14 16:16:55

标签: python dictionary time-complexity

我有一个问题要跟踪大量值。如果我从未遇到过该值,则将执行操作A,否则将执行操作B。自然地,我考虑使用字典来跟踪值,因为查找速度很快〜O(1)。

但是,字典是一个键值系统,而我想利用的只是键。 我可以分配一个伪造的值

"myvalue": None

但是我不禁想知道是否还有一种更优雅的方式来解决它。

有什么想法吗?有想法吗? 谢谢!

3 个答案:

答案 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任务的收集形式。