У меня есть список диктов, из которых мне нужно извлечь, в новый список, некоторые элементы.Он отлично работает для одного элемента:
d = [
{
"a": 1,
"b": {
"x": 3
},
"blah": 4
},
{
"a": 10,
"b": {
"x": 30
},
"blah": 40
},
]
z = [k["b"] for k in d]
print(z)
Это выводит [{'x': 3}, {'x': 30}]
, который является извлеченными данными.
Теперь я понимаю, что мне также нужно включить в извлеченный dict другой элемент изоригинал: a
(и его значение).
Я подумал, что просто возьму значение, если b
и update()
оно с парой:
y = [k["b"].update({"a": k["a"]}) for k in d]
print(y)
Это будетне работает (возвращает [None, None]
), поскольку update()
не возвращает результирующий дикт. предыдущий вопрос привел меня к созданию dict()
из компонентов:
x = [dict(a=k["a"], **k["b"]) for k in d]
print(x)
Это вылетает с
Traceback (most recent call last):
File "C:/dev/config/scratches/scratch_21.py", line 24, in <module>
x = [dict(a=k["a"], **k["b"]) for k in d]
File "C:/dev/config/scratches/scratch_21.py", line 24, in <listcomp>
x = [dict(a=k["a"], **k["b"]) for k in d]
TypeError: type object got multiple values for keyword argument 'a'
Что это значит?В частности: что такое «множественные значения», когда для этого ключа есть только одно (целое число)?