在Python3中通过索引访问dict_keys元素
我试图通过它的索引访问一个dict_key的元素:
test = {'foo': 'bar', 'hello': 'world'} keys = test.keys() # dict_keys object keys.index(0) AttributeError: 'dict_keys' object has no attribute 'index'
我想得到foo
。
同:
keys[0] TypeError: 'dict_keys' object does not support indexing
我怎样才能做到这一点?
在字典上调用list()
:
keys = list(test)
在Python 3中, dict.keys()
方法返回一个字典视图对象 ,作为一个集合。 直接对字典进行迭代也会生成密钥,因此将字典转换为列表将生成所有密钥的列表:
>>> test = {'foo': 'bar', 'hello': 'world'} >>> list(test) ['foo', 'hello'] >>> list(test)[0] 'foo'
不是一个完整的答案,但也许是一个有用的提示。 如果它真的是你想要的第一个项目,那么
next(iter(q))
比…快得多
list(q)[0]
因为整个事情不需要存储在内存中。
对于10.000.000个项目,我发现它快了近40,000倍。
*第一个项目,如果一个字典在Python 3.6之前只是一个伪随机项目(之后它是在标准实现中订购的,尽pipe不build议依赖它)。