繁体   English   中英

有没有值的Python dict?

[英]Is there a Python dict without values?

而不是这个:

a = {"foo": None, "bar": None}

有没有办法写这个?

b = {"foo", "bar"}

并且仍然让b具有恒定的时间访问(即不是Python集,无法键入)?

实际上,在Python 2.7和3.2+中,这确实有效:

>>> b = {"foo", "bar"}
>>> b
set(['foo', 'bar'])

您不能在集合上使用[]访问权限(“key into”),但您可以测试是否包含:

>>> 'x' in b
False
>>> 'foo' in b
True

集合尽可能接近无值字典。 它们具有平均情况下的常量时间访问,需要可清除对象(即没有存储列表或集合中的dicts),甚至支持他们自己的理解语法:

{x**2 for x in xrange(100)}

是的, sets

set() -> new empty set object
set(iterable) -> new set object

Build an unordered collection of unique elements.

相关: 如何实现set()?

时间复杂度: https//wiki.python.org/moin/TimeComplexity#set

为了“钥匙”到在固定时间使用一组in

>>> s = set(['foo', 'bar', 'baz'])
>>> 'foo' in s
True
>>> 'fork' in s
False

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM