Как мне заархивировать несколько списков внутри словаря и найти среднее из них - PullRequest
0 голосов
/ 17 октября 2019

Как мне заархивировать списки внутри словаря:

somedict = {a: [1,2,3, b: [4,5,6], c: [7,8,9], d: [10,11,12]}

Я хочу сжать все значения списков, чтобы получилось так:

dlist = [[1,4,7,10], [2,5,8,11], [3,6,9,12]]

, затем добавить их такэто становится:

sumlist = [21, 26, 30]

, затем в конце найдите сумму, разделив ее на длину каждого списка:

meanlist = [5.25, 6.5, 7.5]

Я подумал, может быть, сохранить списки в массиве numpy и вызватьnp.mean.

1 Ответ

0 голосов
/ 17 октября 2019

Вот решение, которое работает без использования numpy

Сначала мы объявляем словарь

somedict = {"a": [1, 2, 3], "b": [4, 5, 6], "c": [7, 8, 9], "d": [10, 11, 12]}

Затем мы объединяем все ключи в словаре вместе из списка списков

dlist = list(zip(somedict["a"], somedict["b"], somedict["c"], somedict["d"]))

Затем мы сопоставляем сумму по каждому из подсписков, чтобы создать список сумм

sumlist = list(map(sum, dlist))

Здесь я использую лямбда-функцию для создания неисследованной функции, которая вычисляет среднее значение спискаи сопоставьте это с каждым из подсписков.

meanlist = list(map(lambda x: sum(x)/len(x), dlist))
print("dlist: {}".format(list(dlist)))
print("Sumlist: {}".format(sumlist))
print("meanList: {}".format(meanlist))

#Output:
#dlist: [(1, 4, 7, 10), (2, 5, 8, 11), (3, 6, 9, 12)]
#Sumlist: [22, 26, 30]
#meanList: [5.5, 6.5, 7.5]

...