有没有直接解压字典的选项?
如果我做这样的事情
some_obj = {"a": 1, "b": 2, "c": 3}
first, *rest = some_obj
我会得到一个列表,但我想要它在 2 个字典中:first = {"a": 1}和rest = {"b": 2, "c": 3}. 据我了解,我可以创建一个函数,但我想知道我是否可以在一行中创建它,就像在带有扩展运算符的 javascript 中一样。
回答
我不知道是否有一种可靠的方法可以在一行中实现这一点,但这是一种方法。
首先解压keys 和values( .items())。some_obj仅使用迭代键。
>>> some_obj = {"a":1, "b":2, "c": 3}
>>> 首先,*rest = some_obj。项目()
但这将返回一个元组,
>>> first
('a', 1)
>>> rest
[('b', 2), ('c', 3)]
但是您只需一个dict电话就可以再次转换回 dict 。
>>> dict([first])
{'a': 1}
>>> dict(rest)
{'b': 2, 'c': 3}