有没有直接解压字典的选项?

如果我做这样的事情

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}

以上是有没有直接解压字典的选项?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>