如何更优雅地将一对键值对的字典解压缩为两个变量?

时间:2019-09-27 06:39:57

标签: python python-3.x dictionary iterable-unpacking

当前,我正在使用此

d = {'a': 'xyz'}
k, v = list(*d.items())

这里需要加星号的表达式,因为省略它会使列表函数/构造函数返回一个带有一个元组的列表,该元组包含键和值。

但是,我想知道是否还有更好的方法。

3 个答案:

答案 0 :(得分:5)

由于字典项不支持索引访问,因此您可以诉诸于第一个(也是唯一的)项的以下非变异检索:

k, v = next(iter(d.items()))

这样做的好处是,不仅可以处理任何大小的字典,而且还保留O(1)操作,而其他将项目拆包或将其转换为列表的解决方案则不能。

答案 1 :(得分:5)

保留嵌套:

core.filemode

或等效地:

false

不确定我喜欢哪一个,如果我看一眼最后一个,可能很难读懂。

请注意,这里的优点是它是非破坏性的,并且如果字典具有多个键值对,则失败。

答案 2 :(得分:2)

如果您不介意字典被修改,它将这样做:

k, v = d.popitem()