Skip to main content
 首页 » 编程设计

Python 并没有明显的方法从字典中获取特定元素

2025年05月04日11think

为什么我可以轻松地在 Python 中执行 for 循环以按照我附加元素的顺序遍历字典的所有元素,但没有明显的方法来访问特定元素?当我说元素时,我指的是键+值对。

我已经查看了一些关于 Python 的基本教程在字典上所说的内容,但没有一个能回答我的问题,我在 docs.python.org 中也找不到我的答案。

根据: accessing specific elements from python dictionary (Senderies 评论)字典应该是无序的,但为什么 for 循环会按照我放入它们的顺序打印它们?

请您参考如下方法:

您可以按键访问字典中的特定元素。这就是字典。如果该行为不是您想要的,请使用字典以外的东西.

a dict is supposed to be unordered but then why does the for-loop print them in the order I put them in?

巧合:基本上,您碰巧按照 Python 喜欢的顺序放置它们。这并不难做到,尤其是对于整数(int 是它们自己的散列,并且倾向于以数字升序从 dict 中得出,尽管这是一个实现细节 的 CPython,在其他 Python 实现中可能不正确),特别是如果您将它们按数字顺序放在开头。

“无序”实际上意味着您无法控制顺序,它可能会因各种特定于实现的标准而发生变化,因此您不应依赖它。当然,当您遍历字典时,元素会按某种顺序出现。

如果您需要能够通过数字索引访问字典元素,有很多方法可以做到这一点。 collections.OrderedDict 是标准方式;键始终按照您添加它们的顺序返回,因此您始终可以执行 foo[foo.keys()[i]] 来访问第 i 元素。您还可以使用其他方案。