как добавить диапазон чисел в список с помощью цикла for?

#python #list #dictionary

Вопрос:

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

Как я могу это сделать? Я начал, как показано ниже, но, по-видимому, то, что я пытаюсь сделать, не работает.

 for i in list(range (2,6)):
    for j in list(range(1,i)):
        zipped=zip(i,j)
 

Кто-нибудь может мне помочь?

Комментарии:

1. @OmG Список комп. это здорово и питонически. Мой использует defaultdict, чтобы получить тот же результат. проверить это.

Ответ №1:

Вы можете легко это сделать, выполнив итерацию по указанному диапазону:

 result = dict((x, list(range(1, x))) for x in range(2,6))
 

запустите его в Интернете.

Комментарии:

1. @DanielHao Правильно. Изменено range(x) на range(1,x) .

Ответ №2:

Есть и другой способ — с помощью defaultdict :

 from collections import defaultdict
dd = defaultdict(list)
for i in range(2, 6):
    for j in range(1, i):
        dd[i].append(j)