我想知道 for
到底是怎么回事?循环访问字典中的键?
它叫 dict.keys()
并迭代该列表?
我问的原因是我想查询字典的键,任何键,我想知道调用之间的性能(除了视觉效果和可读性之外)是否存在差异:
for key in dict:
my_func(dict[key])
break
和
my_func(dict.keys()[0])
这让我想到了上面的问题 - python 在 for
期间做什么?循环播放 dict
具体来说,在幕后?
最佳答案
迭代dict
不会调用dict.key()
。字典本身支持迭代。
>>> iter({'name': 'value'})
<dict_keyiterator object at 0x7f127da89688>
顺便说一句,dict.keys
在Python 3.x中返回不支持索引的字典键 View 。
>>> {'name': 'value'}.keys()
dict_keys(['name'])
>>> {'name': 'value'}.keys()[0]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'dict_keys' object does not support indexing
如果你想获取任意 key ,可以使用next
、iter
:
>>> next(iter({'name': 'value', 'name2': 'another value'}))
'name'
>>> next(iter({})) # <-- To handle empty case, pass default value
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
StopIteration
>>> next(iter({}), 'default value')
'default value'
关于python - `for` 循环如何在字典上具体工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36174723/