dictionary键()和值()的关系



我有一些字典d.

k = d.keys()
v = d.values()

对于每个n,是否保证k[n]v[n]是相关的?

是。来自.keys().values()的对应条目表示字典内的相同键/值对。(在旧版本的Python中,如果添加或删除项目,顺序可能会有所不同,但如果在调用之间没有进行此类修改,则顺序会相应。(

d = {"answer": 42, "unlucky": 13, ...}
assert list(d.items()) == list(zip(d.keys(), d.values()))

这在以前版本的Python文档中已经明确说明。在最新版本的Python中,无论字典发生了什么变化,条目都会保留其插入顺序,他们显然觉得不需要显式,但这仍然是真的。

Python字典:键((和值((的顺序总是一样吗?

根据一个相关问题的答案,字典在Python 3.6中保持插入顺序。这里有一个链接到圭多的法令";这样做";。

下面是我在Python3控制台中做的一个示例,用于测试每个n的关系是否相关:

>>> a = dict()
>>> a['yes'] = 'no'
>>> a['blah'] = 'beeper'
>>> a['foo'] = 'bar'
>>> a.keys()
dict_keys(['yes', 'blah', 'foo'])
>>> a.values()
dict_values(['no', 'beeper', 'bar'])
>>>

编辑:在阅读了上面的一些评论之后,您需要将这些评论制作成列表,以便将其作为索引进行访问。根据前面的例子:

>>> keys = list(a.keys())
>>> keys
['yes', 'blah', 'foo']
>>> values = list(a.values())
>>> values
['no', 'beeper', 'bar']
a = dict()
a["sas"] = 10
a["ase"] = 90
a["ing"] = 98
print(a)

还有钥匙!

print(a[0])
print(a[1])
print(a[2])

最新更新