在 Python 3 中获取 OrderedDict
第一项的最短方法是什么?
我最好的:
list(ordered_dict.items())[0]
很长很丑。
我能想到:
next(iter(ordered_dict.items())) # Fixed, thanks Ashwini
但它不是很自我描述。
有更好的建议吗?
原文由 Ram Rachum 发布,翻译遵循 CC BY-SA 4.0 许可协议
在 Python 3 中获取 OrderedDict
第一项的最短方法是什么?
我最好的:
list(ordered_dict.items())[0]
很长很丑。
我能想到:
next(iter(ordered_dict.items())) # Fixed, thanks Ashwini
但它不是很自我描述。
有更好的建议吗?
原文由 Ram Rachum 发布,翻译遵循 CC BY-SA 4.0 许可协议
2 回答5.2k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
4 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
2 回答861 阅读✓ 已解决
1 回答1.7k 阅读✓ 已解决
可读性编程实践
一般来说,如果您觉得代码不是自描述的,通常的解决方案是将其分解为一个命名良好的函数:
使用该 辅助函数,后续代码变得非常可读:
从集合中提取单个值的模式
从 set 、 dict 、 OrderedDict 、生成器或其他不可索引的集合中获取元素的常用方法是:
和:
后者很好,因为 next() 函数允许您在集合为空时指定默认值,或者您可以选择让它引发异常。 next() 函数也明确表示它正在请求下一个项目。
替代方法
如果您确实需要索引和切片以及其他序列行为(例如索引多个元素),使用
list(some_collection)
或使用[itertools.islice()][2]
转换为列表是一件简单的事情: