Mam słownik, który wygląda tak. . .Python - Jak znaleźć średnią wielu wartości/klucza w słowniku
CombinedDict = {'Abamectin': [63, 31, 53], 'Difenzoquat metilsulfate': [185, 49, 152], 'Chlorpyrifos': [14, 26, 56], 'Dibutyl phthalate': [25, -17, -18]
i tak dalej. W sumie mam 48 różnych kluczy.
To, co próbuję uzyskać, to średnia z trzech liczb. Więc dostałbym dykt, który wygląda tak. . .
AvgDictName = {'Abamectin': [49], 'Difenzoquat metilsulfate': [128], 'Chlorpyrifos': [32], 'Dibutyl phthalate': [-3] . . .
Próbowałem przy użyciu tej linii
AvgDictName = dict([(key, float(sum([int(i) for i in values]))/len(values)) for key, values in CombinedDict])
Ale jestem coraz zbyt wiele wartości do rozpakowywania error pomysłów? Myślę, że można to również zrobić, umieszczając dyktando na liście i znajdując średnią z listy używając poleceń len i sum, a następnie konwertując z powrotem do dyktatu, ale tak naprawdę nie wiem, jak to zrobić. Dziękuję, mam wrażenie, że powinno to być łatwe.
'.iteritems()' dla Pythona 2.x – inspectorG4dget
@ inspectorG4dget, ' .items() 'jest rzeczywiście lepszy w tym sensie, że jest" odporny na Python 3 ", chyba że naprawdę potrzebujesz optymalizacji dla list o dużej wartości. –
@BenHoyt: Właśnie do tego służy narzędzie 2to3. Czy powinienem również zawijać wszystkie moje instrukcje drukowania w nawiasach? – Eric