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

时间:2013-03-12 16:17:02

标签: python python-3.x

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

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

4 个答案:

答案 0 :(得分:11)

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

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

key = list(d)[0]
value = list(d.values())[0]

或同时获得两者:

key, value = list(d.items())[0]

需要list次调用,因为在Python 3中,.keys().values().items()会返回字典视图,而不是列表。

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

key, = d
value, = d.values()

或两者同时:

(key, value), = d.items()

答案 1 :(得分:7)

使用迭代器

获取字典中的第一项
>>> d = {"foo":"bar"}
>>> k, v = next(iter(d.items()))
>>> k
'foo'
>>> v
'bar'

答案 2 :(得分:1)

你可以这样做:

>>> d={1:'one'}
>>> k=list(d)[0]
>>> v=d[k]

适用于Python 2或3

答案 3 :(得分:0)

d.popitem()会给你一个关键的价值元组。