Я пытаюсь создать простой словарь каждой буквы с последующим номером (от 1-26), например: {'a': 1, 'b': 2, 'c': 3, ...}
. Я хотел попробовать использовать словарь понимание, чтобы сделать это, так что я сделал:Ошибка определения Dict
from string import lowercase
d = {s:i for s in lowercase for i in range(1, 27)}
Однако это приводит: {'a': 26, 'b': 26, 'c': 26, ...}
. Я думаю, это происходит потому, что он выполняет итерацию по каждому значению в нижнем регистре, присваивая его 1, затем 2, затем 3 (для каждого значения), заканчивающийся на 26. Есть только 26 клавиш, потому что, поскольку это словарь, у него не будет двух ключей того же письма (поэтому он перезаписывает все из них до 26 в конце). Я не уверен, как это исправить, поэтому, если бы я мог получить руководство относительно того, как это сделать на самом деле, это было бы здорово.
Я получил его для работы с использованием dict()
и zip()
: dict(zip(lowercase, range(1, 27)))
. Однако я хочу знать, как это сделать, используя понимание словаря. Благодаря!