Mám dva slovníky Pythonu a chci napsat jediný výraz, který vrátí tyto dva slovníky sloučené. Metoda update()
by byla to, co potřebuji, kdyby vracela svůj výsledek místo toho, aby na místě měnila dict.
>>> x = {'a': 1, 'b': 2}
>>> y = {'b': 10, 'c': 11}
>>> z = x.update(y)
>>> print(z)
None
>>> x
{'a': 1, 'b': 10, 'c': 11}
Jak mohu získat ten výsledný sloučený dict v z
, nikoliv v x
?
(Aby bylo jasno, hledám také řešení konfliktů pomocí dict.update()
.)
Ve vašem případě můžete udělat následující:
z = dict(x.items() + y.items())
Tím se podle vašeho přání vloží poslední dict do z
a hodnota klíče b
bude správně přepsána hodnotou druhého (y
) dict'u:
>>> x = {'a':1, 'b': 2}
>>> y = {'b':10, 'c': 11}
>>> z = dict(x.items() + y.items())
>>> z
{'a': 1, 'c': 11, 'b': 10}
Pokud používáte Python 3, je to jen o něco složitější. Vytvoření z
:
>>> z = dict(list(x.items()) + list(y.items()))
>>> z
{'a': 1, 'c': 11, 'b': 10}