如何获取字典键和值

Meh*_*far 3 python dictionary python-3.x

想象一下我有一个dict这样的:

d = {'key': 'value'}
Run Code Online (Sandbox Code Playgroud)

dict只包含一个键值。我试图让key从这个dict,我试过d.keys()[0],但它返回IndexError,我尝试这样做:

list(d.keys())[0]
Run Code Online (Sandbox Code Playgroud)

它工作得很好,但我认为这不是一个好方法,因为它创建了一个新列表,然后首先获取它的索引。
有一个更好的方法吗?我也想value

Dun*_*nes 5

如果您知道(或期望)只有一个键/值对,那么您可以使用解包来获取键和值。例如。

[item] = d.items()
assert item == ('key', 'value')
Run Code Online (Sandbox Code Playgroud)

您可以更进一步,也可以解压缩键/值对。

[[k, v]] = d.items()
assert k == 'key'
assert v == 'value'
Run Code Online (Sandbox Code Playgroud)

当然,如果字典有多个键/值对,这会引发错误。但是这很有用。字典在 python 3.7 之前是无序的(dict在 CPython 3.6 中是有序的,但它是一个实现细节),所以这样做list(d.items())[0]会产生不一致的结果。即使在 3.7+ 中,排序是过度插入,而不是键的任何自然排序,因此您仍然可以获得令人惊讶的结果。