Mam dwie listy słowników.Odejmij wartości z listy słowników od innej listy słowników
foo = [{'Tom': 8.2}, {'Bob': 16.7}, {'Mike': 11.6}]
bar = [{'Tom': 4.2}, {'Bob': 6.7}, {'Mike': 10.2}]
Odjęcie A i B powinna być aktualizowana w foo:
foo = [{'Tom': 4.0}, {'Bob': 10.0}, {'Mike': 1.4}]
Teraz próbowałem tego z dwoma pętlami i zip
-function:
def sub(a,b):
for mydict,mydictcorr in zip(a,b):
{k:[x-y for x, y in mydict[k], mydictcorr[k]] for k in mydict}
return mydict
print sub(foo,bar)
dostaję TypeError: 'float' object is not iterable
. Gdzie jest mój błąd?
Twoje struktury danych są błędne. 'foo' i' bar' prawdopodobnie nie powinny być listami słowników. Albo przynajmniej słowniki nie powinny mieć różnych kluczy. Co reprezentujesz? Co będzie trzeba zrobić z danymi? –