Ваш код не будет работать, поскольку переменная dict
(которая, кстати, скрывает встроенную функцию dict
) равна , пока не определена до того, как литерал {...}
был оценен , поэтому его нельзя использовать в пределах {...}
.
Вместо этого вы можете создать итерацию чисел, например, используя itertools.count
или просто iter(range(1, some_number))
, а затем получите значения next
из этой итерации.
>>> nums = itertools.count(1)
>>> {"a": next(nums), "b": next(nums), "c": next(nums)}
{'a': 1, 'b': 2, 'c': 3}
Или используйте функцию dict
с zip
, чтобы объединить список ключей с их значениями:
>>> dict(zip(("a", "b", "c"), itertools.count(1)))
{'a': 1, 'b': 2, 'c': 3}
(Это также работает с шагами, отличными от 1
, или фактически с произвольными списками значений, а не только с числами. В случае шагов всегда 1
, enumerate
может действительно быть более простой альтернативой.)