5

假设我有 dict。我不知道里面的键/值。如何在不执行 for 循环的情况下获取此键和值(字典中只有一项)。

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

4

4 回答 4

12

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

如果您的字典仅包含一个键和一个值,则可以通过索引获得:

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

或同时获得:

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

这些list调用是必需的,因为在 Python 3 中,.keys(),.values().items()返回 dict 视图,而不是列表。

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

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

或同时为两者:

(key, value), = d.items()
于 2013-03-12T16:19:15.893 回答
7

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

>>> d = {"foo":"bar"}
>>> k, v = next(iter(d.items()))
>>> k
'foo'
>>> v
'bar'
于 2013-03-12T16:20:27.470 回答
1

你可以这样做:

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

在 Python 2 或 3 中工作

于 2013-03-12T16:25:56.967 回答
0

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

于 2013-03-12T16:18:40.480 回答