有一个 python 字典并且知道它仅由一个键/值对组成,检索单个/唯一项的最佳方法是什么?
到目前为止,我知道我可以使用以下两种方式之一:
list(mydict.keys())[0]
下一步(iter(mydict))
据我所知,list
的性能比 iter
差,所以后一种方法应该更好,对吧?哪些方式最好?有比我指出的两种方式更好的东西吗?请告诉我。
最佳答案
Which way is best?
我建议使用 next(iter(d))
而不是 list(mydict.keys())[0]
从字典中检索键。如您所料,使用 next(iter(d))
在效率方面好得多。
可以通过计时每种方法来观察效率差异:
>>> import timeit
>>> setup='from string import ascii_letters; d = {k: v for k, v in enumerate(ascii_letters)}'
>>> timeit.timeit(stmt='list(d.keys())[0]', setup=setup)
1.0895291733333334
>>> timeit.timeit(stmt='next(iter(d))', setup=setup)
0.2682935466666656
使用 next(iter(d))
而不是 list(d.keys())[0]
的选择变得非常,非常 随着字典大小的增加很明显:
>>> setup='d = {k: v for k, v in enumerate(range(500, 10000))}'
>>> timeit.timeit(stmt='list(d.keys())[0]', setup=setup)
98.52252842666667
>>> timeit.timeit(stmt='next(iter(d))', setup=setup)
0.2720192000000452
next(iter(d))
比 list(d.keys())[0]
执行得更好,主要是因为它避免了创建一个潜在的巨大列表内存中的所有字典键,实际上只需要第一个元素。
关于python - 从字典中获取单个键的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46042430/