Ошибка при создании словаря из 2 списков - PullRequest
0 голосов
/ 24 ноября 2018

У меня есть некоторый код, который принимает строковый ввод, переводит его в список целых чисел, используя словарь, затем генерирует dict из этого списка и список алфавита (я хотел бы использовать список алфавита в качестве ключа)

alphabet = ['a','b','c','d','e','f','g','h','i','j','k','l','m','p','q','r',
            's','t','u','v','w','x','y','z',' ','.','-','-',',','!','?']

def gen_dict() :
    key_dict = {'a':'00', 'b':'01', 'c':'02', 'd':'03', 'e':'04', 'f':'05',
                'g':'06', 'h':'07', 'i':'08', 'j':'09', 'k':'10', 'l':'11',
                'm':'12', 'n':'13', 'o':'14', 'p':'15', 'q':'16', 'r':'17',
                's':'18', 't':'19', 'u':'20', 'v':'21', 'w':'22', 'x':'23',
                'y':'24', 'z':'25', ' ':'26', '.':'27', '-':'28', ',':'29',
                '!':'30', '?':'31'}
    print(key_dict)
    p= 0
    key = key.lower()
    for character in key:
        keyint.append(key_dict[message[p]])
        p += 1
    letter-num_dict = {k:v for k,v in zip(alphabet,keyint)}
    print(letter-num_dict)  
key = input()
gen_dict()

, но программа даже не запускается, вместо этого выдается сообщение об ошибке:

letter-num_dict = {k: v для k, v в zip (алфавит,keyint)} ^ SyntaxError: невозможно назначить оператору

Я не смог найти что-либо еще в сети, получая это сообщение об ошибке по тем же причинам, поэтому любая помощь приветствуется.

Ответы [ 2 ]

0 голосов
/ 24 ноября 2018

Нельзя использовать дефисы в именах переменных.

Изменить letter-num_dict на letter_num_dict (или эквивалентный).

0 голосов
/ 24 ноября 2018

Переменные не могут иметь тире (-) в качестве части имени, поскольку Python интерпретирует это как оператор минус .Вместо этого измените его на подчеркивание: letter_num_dict

...