【发布时间】:2014-01-30 12:23:11
【问题描述】:
在 Python 3 中获取OrderedDict 第一项的最短方法是什么?
我最好的:
list(ordered_dict.items())[0]
又长又丑。
我能想到的:
next(iter(ordered_dict.items())) # Fixed, thanks Ashwini
但它不是很自我描述。
有更好的建议吗?
【问题讨论】:
-
使用列表是个坏主意。在您获得第一项之前,将填充整个列表。使用 next() 是最优的,因为 .items() 返回一个迭代器并且只会产生一个值。
-
最短路径是什么意思?字符数少?
-
我认为你也需要一个
iter调用:next(iter(d.items()))因为.items返回一个 View 对象。 -
@thefourtheye 是的,更少的字符,但希望也是惯用的。
-
我想知道
next(iter(ordered_dict.items()))这是否会推进迭代器。正如预期的那样,它不会推进迭代器!假设next(iter(ordered_dict.items()))在O(1)时间运行是否安全?
标签: python python-3.x indexing iterable