是否有没有值的Python字典?
问题内容:
代替这个:
a = {"foo": None, "bar": None}
有没有办法写这个?
b = {"foo", "bar"}
仍然让我们b
有恒定的访问时间(即不是Python集合,无法将其键入)?
问题答案:
实际上,在Python 2.7和3.2+中,这确实有效:
>>> b = {"foo", "bar"}
>>> b
set(['foo', 'bar'])
您不能[]
对集合(“键入”)使用访问权限,但是可以测试是否包含:
>>> 'x' in b
False
>>> 'foo' in b
True
集合尽可能接近无值词典。它们具有平均情况下的恒定时间访问,需要可哈希对象(即,没有存储列表或集合中的字典),甚至支持它们自己的理解语法:
{x**2 for x in xrange(100)}