fj1*_*23x 107 python dictionary key python-3.x
我正在尝试通过索引访问dict_key的元素:
test = {'foo': 'bar', 'hello': 'world'}
keys = test.keys() # dict_keys object
keys.index(0)
AttributeError: 'dict_keys' object has no attribute 'index'
Run Code Online (Sandbox Code Playgroud)
我想得到foo
.
同样的:
keys[0]
TypeError: 'dict_keys' object does not support indexing
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
Mar*_*ers 125
请拨打list()
字典:
keys = list(test)
Run Code Online (Sandbox Code Playgroud)
在Python 3中,该dict.keys()
方法返回一个字典视图对象,它充当一个集合.直接迭代字典也会生成键,因此将字典转换为列表会生成所有键的列表:
>>> test = {'foo': 'bar', 'hello': 'world'}
>>> list(test)
['foo', 'hello']
>>> list(test)[0]
'foo'
Run Code Online (Sandbox Code Playgroud)
Mar*_*ark 46
不完整的答案,但也许是一个有用的提示.如果它真的是你想要的第一个项目*,那么
next(iter(q))
Run Code Online (Sandbox Code Playgroud)
比...快得多
list(q)[0]
Run Code Online (Sandbox Code Playgroud)
对于大型dicts,因为整个事情不必存储在内存中.
对于10.000.000项,我发现它快了近40.000倍.
*在Python 3.6之前,dict只是一个伪随机项的第一项(之后它在标准实现中被排序,虽然它不建议依赖它).
woo*_*odz 15
mydict = {'a': 'one', 'b': 'two', 'c': 'three'}
mykeys = [*mydict] #list of keys
myvals = [*mydict.values()] #list of values
print(mykeys)
print(myvals)
Run Code Online (Sandbox Code Playgroud)
输出
['a', 'b', 'c']
['one', 'two', 'three']
Run Code Online (Sandbox Code Playgroud)
另请参阅此详细答案
我想要第一个字典项的“键”和“值”对。我使用了以下代码。
key, val = next(iter(my_dict.items()))
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
99763 次 |
最近记录: |