从2个列表生成字典时出错

时间:2018-11-24 13:59:51

标签: python list dictionary syntax-error assignment-operator

我有一些代码需要输入字符串,  使用字典将其转换为整数列表  然后从该列表和字母列表生成字典 (我想使用字母列表作为键)

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表示zip中的k,v(字母,keyint)}       ^ SyntaxError:无法分配给运算符

由于类似的原因,我在网上找不到其他任何东西得到此错误消息,因此我们将不胜感激。

2 个答案:

答案 0 :(得分:2)

您不能在变量名称中使用连字符。

letter-num_dict更改为letter_num_dict(或等效名称)。

答案 1 :(得分:1)

变量名称中不能包含短划线(-),因为Python将其解释为运算符。将其更改为下划线:letter_num_dict