Как преобразовать это для цикла в понимание dict? - PullRequest
0 голосов
/ 16 октября 2018

Я могу добиться этого с помощью

mydict = {}
for a in range(0,6):
    mydict[a] = []

print (mydict)

#{0: [], 1: [], 2: [], 3: [], 4: [], 5: []}

Вопрос в том, как бы я достиг этого с помощью понимания речи?

Редактировать:

d = {level: [] for level in range(1, level + 1)}

for each_level in d:
    d[each_level] = [ExampleClass(1, 1)
                         for _ in range(5)]

Извините, что не поднялто, что я имел с самого начала, я думал, что это не сильно поможет.

Это то, что у меня есть, и оно делает то, что я хочу, но мне интересно, есть ли способ, которым я могу сократить всеэто в одну строку или около того.

В конце я хотел бы что-то вроде:

d = {level: [] for level in range(1, level + 1), [ExampleClass(1, 1) for _ in range(5)]

1 Ответ

0 голосов
/ 16 октября 2018

Вот так:

d = {a:[] for a in range(6)}

Не используйте имя dict для своих собственных переменных, вы будете скрывать встроенное имя dict.
Также обратите внимание, что если вы не• Предоставить аргумент start для range, по умолчанию он равен 0.

Возможно, вы захотите взглянуть на defaultdict из модуля collections вместо инициализации dict с помощьюпустые списки сами.Демо:

>>> from collections import defaultdict
>>> d = defaultdict(list)
>>> d[0]
[]
>>> d[1]
[]

Списки создаются только при первом обращении к клавише.

>>> d
defaultdict(<class 'list'>, {0: [], 1: []})

edit: ~ follow ~

У меня нет вашего примера класса, но вы должны быть в состоянии выучить необходимый синтаксис из этой демонстрации.slice вступит для вас ExampleClass.

>>> ExampleClass = slice
>>> d = {a:[ExampleClass(1, 1) for _ in range(5)] for a in range(6)}
>>> d
{0: [slice(1, 1, None), slice(1, 1, None), slice(1, 1, None), slice(1, 1, None), slice(1, 1, None)], 1: [slice(1, 1, None), slice(1, 1, None), slice(1, 1, None), slice(1, 1, None), slice(1, 1, None)], 2: [slice(1, 1, None), slice(1, 1, None), slice(1, 1, None), slice(1, 1, None), slice(1, 1, None)], 3: [slice(1, 1, None), slice(1, 1, None), slice(1, 1, None), slice(1, 1, None), slice(1, 1, None)], 4: [slice(1, 1, None), slice(1, 1, None), slice(1, 1, None), slice(1, 1, None), slice(1, 1, None)], 5: [slice(1, 1, None), slice(1, 1, None), slice(1, 1, None), slice(1, 1, None), slice(1, 1, None)]}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...