Я получил этот домашний вопрос, после прохождения курса по Udemy, я до сих пор не могу понять, как получить правильный результат, такой как Solution.
Более того: как я могу сделать это более эффективным. Как я могу сделать это без использования явных циклов, но вместо этого использовать списочные / словарные выражения.
Вот что я делаю:
def group_permutation_values(permutations_list):
dic = {}
f = lambda x: x[1]
for key, group in itertools.groupby(sorted(permutations_list, key=f), f):
dic[key] = list(group)
return dic
pass
results = [
((1, 2, 3), -4),
((1, 3, 2), -4),
((2, 1, 3), -2),
((2, 3, 1), -2),
((3, 1, 2), 0),
((3, 2, 1), 0)
]
print(group_permutation_values(results))
Вот что я получил:
{
-4: [((1, 2, 3), -4), ((1, 3, 2), -4)],
-2: [((2, 1, 3), -2), ((2, 3, 1), -2)],
0: [((3, 1, 2), 0), ((3, 2, 1), 0)]
}
И ожидаемый результат:
{
-4: [(1, 2, 3), (1, 3, 2)],
-2: [(2, 1, 3), (2, 3, 1)],
0: [(3, 1, 2), (3, 2, 1)]
}