如何获取仅包含一个项目的字典的键/值对?

use*_*740 4 python python-3.x

比方说我有口才.我不知道里面的键/值.如何在不执行for循环的情况下获取此键和值(dict中只有一个项目).

您可能想知道为什么我在这种情况下使用字典.我的API上都有字典,我不希望丢失用户.这只是一致性的问题.否则,我会使用列表和索引.

Mar*_*ers 11

为作业使用正确的数据类型.您的目标应该是拥有可行的代码,而不是在整个地方使用相同的数据类型.

如果您的字典只包含一个键和一个值,则可以使用索引编制:

key = list(d)[0]
value = list(d.values())[0]
Run Code Online (Sandbox Code Playgroud)

或两者兼得:

key, value = list(d.items())[0]
Run Code Online (Sandbox Code Playgroud)

list调用需要的,因为在Python 3 .keys(),.values().items()返回字典看法,并不名单.

另一种选择是使用序列解包:

key, = d
value, = d.values()
Run Code Online (Sandbox Code Playgroud)

或两者同时:

(key, value), = d.items()
Run Code Online (Sandbox Code Playgroud)


Cha*_*via 7

只需使用迭代器获取字典中的第一项

>>> d = {"foo":"bar"}
>>> k, v = next(iter(d.items()))
>>> k
'foo'
>>> v
'bar'
Run Code Online (Sandbox Code Playgroud)