Лучший способ присвоения многомерного списка уникальным значениям - PullRequest
0 голосов
/ 26 января 2020

Каков наилучший способ присвоения списка имен и значений списку уникальных имен? Или есть способ игнорировать список уникальных значений с самого начала?

Например:

list01 = ['John Doe', 'Jane Doe']
list02 = [['John Doe', 'John Doe', 'Jane Doe', 'John Doe', 'Jane Doe'], [10, 20, 30, 40, 50]]

Конечный результат должен выглядеть следующим образом:

list03 = [['John Doe', 'Jane Doe'], [70, 80]]

Спасибо за вашу помощь и большое воскресенье всем!

1 Ответ

0 голосов
/ 26 января 2020

Я понимаю, что вы хотите суммировать значения по имени, вы можете попробовать что-то вроде этого:

list01 = ['John Doe', 'Jane Doe']
list02 = [['John Doe', 'John Doe', 'Jane Doe', 'John Doe', 'Jane Doe'], [10, 20, 30, 40, 50]]

totals = {name: 0 for name in list01}
for i in range(len(list02[0])):
    totals[list02[0][i]] += list02[1][i]

list03 = [list(totals.keys()), list(totals.values())]

Или, альтернативно, вы можете попробовать использовать понимание списка python, может быть что-то вроде этого:

list01 = ['John Doe', 'Jane Doe']
list02 = [['John Doe', 'John Doe', 'Jane Doe', 'John Doe', 'Jane Doe'], [10, 20, 30, 40, 50]]

list03 = [list01[:], [sum([x[1] for x in zip(list02[0], list02[1]) if x[0]==y]) for y in list01]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...