如何获取仅包含一个项的字典中的键值对?
假设我有一个字典(dict),里面的键和值我都不知道。那我该怎么获取这个键和值,而不使用循环(因为字典里只有一个项目)呢?
你可能会问,为什么我在这种情况下还要用字典。其实在我的API中到处都是字典,我不想让用户感到困惑。这样做只是为了保持一致性。要不然我就会用列表和索引了。
相关问题:
4 个回答
1
你可以这样做:
>>> d={1:'one'}
>>> k=list(d)[0]
>>> v=d[k]
在Python 2和3中都可以使用
7
只需使用迭代器获取字典中的第一个项目
>>> d = {"foo":"bar"}
>>> k, v = next(iter(d.items()))
>>> k
'foo'
>>> v
'bar'
12
使用合适的数据类型来完成任务。你的目标应该是写出能正常工作的代码,而不是到处都用同一种数据类型。
如果你的字典里只包含 一个 键和 一个 值,你可以通过索引来获取它们:
key = list(d)[0]
value = list(d.values())[0]
或者你也可以同时获取这两个:
key, value = list(d.items())[0]
在Python 3中,.keys()、.values() 和 .items() 返回的是字典视图,而不是列表,所以需要用 list 来转换。
另一种选择是使用序列解包:
key, = d
value, = d.values()
或者你也可以同时获取这两个:
(key, value), = d.items()