Итак, у меня есть функция, которая должна принимать список из 10 лучших имен детей 1980-1984 годов и пустой словарь в качестве аргументов, и она должна возвращать словарь с именем в качестве ключа и список списков с частота, пол и год как значения.
Список данных выглядит примерно так:
...[1, 'Christopher', 741, 'Boy', 1984],
[2, 'Michael', 674, 'Boy', 1984],
[3, 'Matthew', 630, 'Boy', 1984],
[4, 'Ryan', 598, 'Boy', 1984],
[5, 'Daniel', 459, 'Boy', 1984],
[6, 'David', 413, 'Boy', 1984],
[7, 'Jason', 399, 'Boy', 1984],
[8, 'Andrew', 343, 'Boy', 1984],
[8, 'Robert', 343, 'Boy', 1984],
[10, 'Kyle', 331, 'Boy', 1984],
[1, 'Jennifer', 705, 'Girl', 1980],
[2, 'Amanda', 551, 'Girl', 1980],
[3, 'Melissa', 316, 'Girl', 1980],
[4, 'Lisa', 290, 'Girl', 1980],
[5, 'Sarah', 284, 'Girl', 1980],
[6, 'Michelle', 281, 'Girl', 1980],
[7, 'Nicole', 252, 'Girl', 1980],
[8, 'Erin', 249, 'Girl', 1980],
[9, 'Angela', 215, 'Girl', 1980],
[10, 'Heather', 191, 'Girl', 1980],
[10, 'Kimberly', 191, 'Girl', 1980],...
Ожидаемый вывод должен быть:
{ 'Amanda': [ [551, 'Girl', 1980],
[[486, 'Girl', 1981]],
[[567, 'Girl', 1982]],
[[480, 'Girl', 1983]],
[[457, 'Girl', 1984]]...
Мой фактический вывод:
{ 'Amanda': [ [551, 'Girl', 1980],
[[486, 'Girl', 1981]],
[[567, 'Girl', 1982]],
[[480, 'Girl', 1983]],
[[457, 'Girl', 1984]],
[[551, 'Girl', 1980]],
[[486, 'Girl', 1981]],
[[567, 'Girl', 1982]],
[[480, 'Girl', 1983]],
[[457, 'Girl', 1984]],
[[551, 'Girl', 1980]],
[[486, 'Girl', 1981]],
[[567, 'Girl', 1982]],
[[480, 'Girl', 1983]],
[[457, 'Girl', 1984]]],...
Мой код такой:
def create_names_dict(data_list, d):
for row in data_list:
if row[1] not in d: #if name not in dict
d[row[1]] = ([row[2:]]) # make name a key and from freq on the val
else:
d[row[1]].append([row[2:]])
return d #returned filled dict
Любая помощь с этим будет принята с благодарностью.