Создать словарь Python для понимания из диапазона - PullRequest
0 голосов
/ 26 мая 2019

Может ли понимание словаря python генерироваться из диапазона, то есть с учетом range(42) Я хотел бы получить что-то вроде

{
    "key0": "value0",
    "key1": "value1",
    ....
    "key41", "value41"
}

Я знаю, что это может быть сделано косвенно через понимание списка, например с:

dict(("key" + str(i), "value" + str(i)) for i in range(42))

Позволяет ли понимание словаря подобную конструкцию?

Ответы [ 3 ]

1 голос
/ 26 мая 2019
sol = {'key{}'.format(i):'value{}'.format(i) for i in range(42)}
print(sol)


{'key0': 'value0', 'key1': 'value1', 'key2': 'value2', 'key3': 'value3', 'key4': 'value4', 'key5': 'value5', 'key6': 'value6', 'key7': 'value7', 'key8': 'value8', 'key9': 'value9', 'key10': 'value10', 'key11': 'value11', 'key12': 'value12', 'key13': 'value13', 'key14': 'value14', 'key15': 'value15', 'key16': 'value16', 'key17': 'value17', 'key18': 'value18', 'key19': 'value19', 'key20': 'value20', 'key21': 'value21', 'key22': 'value22', 'key23': 'value23', 'key24': 'value24', 'key25': 'value25', 'key26': 'value26', 'key27': 'value27', 'key28': 'value28', 'key29': 'value29', 'key30': 'value30', 'key31': 'value31', 'key32': 'value32', 'key33': 'value33', 'key34': 'value34', 'key35': 'value35', 'key36': 'value36', 'key37': 'value37', 'key38': 'value38', 'key39': 'value39', 'key40': 'value40', 'key41': 'value41'}
1 голос
/ 26 мая 2019

С> python3.5, с f строками что-то вроде

>>> {f"key{i}": f"value{i}" for i in range(5)}
{'key0': 'value0', 'key1': 'value1', 'key2': 'value2', 'key3': 'value3', 'key4': 'value4'}
>>>
1 голос
/ 26 мая 2019

Вы были очень близки.Одним из способов является использование следующего «словарного понимания».Просто увеличьте его до range(42).Вам не нужно явно использовать ключевое слово dict в понимании списка.{ } делает это за вас. Эта веб-страница pep содержит более подробные объяснения словаря.

ans = {"key" + str(i): "value" + str(i) for i in range(10)}
# {'key0': 'value0',
#  'key1': 'value1',
#  'key2': 'value2',
#  'key3': 'value3',
#  'key4': 'value4',
#  'key5': 'value5',
#  'key6': 'value6',
#  'key7': 'value7',
#  'key8': 'value8',
#  'key9': 'value9'}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...