11. Игральные кубики.

(открыть в новой вкладке)

Условие:

Составить словарь (программно), где ключ - это сумма очков на двух кубиках, а значение - перечень всех комбинаций, которые дадут это количество очков.
Сделать словарь списков списков:
dice = {
2: [[1, 1]],
...
6: [[1, 5], [2, 4], [3, 3], [4, 2], [5, 1]],
7: [[1, 6], [2, 5], [3, 4], [4, 3], [5, 2], [6, 1]],
...
12: [[6, 6]]
}

Код:

# ввод данных (без проверки)
number = int(input("Введите максимальное значение кубика (любое натуральное число): "))
number_range = range(1, number + 1)                                                                                 # эту переменную будем обходить в цикле
number_range2 = range(1, number + 1)                                                                                # эта переменная создана для второго кубика

result_dict = dict()                                                                                                # составим словарь, где ключ - это сумма, а его значения - это комбинации очков на кубиках
for i in number_range:                                                                                              # обойдём значения кубиков в цикле 
    for i2 in number_range2:
        amount = i + i2                                                                                             # сумма меняется в цикле
        if amount not in result_dict.keys():                                        
            result_dict[amount] = [[i, i2]]                                                                         # создаём ключ в словаре (это сумма) со значением
        elif amount in result_dict.keys():  
            result_dict[amount] += [[i, i2]]                                                                        # ключ в словаре уже есть, прибавляем ещё одну вариацию к значению ключа (это сумма) в словаре 

# обойдем в цикле значения ключ:значение для печати
for i in result_dict.items():
    print(i)