处理形如key=value的参数时,Python 要求 key的名称遵循 Python变量命名规则,如果是数字、元祖等key会使得Python在解析的时视为一个完整表达式而出错。如果需要可以用 a = dict([(1, 10)])
因为数字5001,6208等是常量,不能写在赋值号的左边。
# “键=值”的形式,相当于把key当作一个变量名,value给变量赋值,变量规则里不能以数字开头,所以会报错。可以不用通过调用dict方法定义字典如下:
b= {5001:"小张",6208:"小李",5012:"小孙"}
当使用“键=值”的形式创建字典时,如果报错“Cannot assign to function call”,就表明在可以试试将一个值赋值给一个函数调用。这种情况通常是由于在创建字典时使用了一个函数作为键,而函数名是不能被赋值的。
假如试图创建一个字典,其中键是一个函数名,如下所示:
def func():
pass
d = {func: 1}
这样做会导致报错“Cannot assign to function call”。这是因为在可以试试将值 1 赋值给函数调用 func() 时出错。
正确的做法是将函数名放在引号中,将其视为字符串。例如:
d = {'func': 1}
这样就可以正常创建字典了。
注意在 Python 中,数字也可以作为字典的键,因此不会因为使用数字做键而报错。
如果使用元组列表形式创建字典,就没有问题。例如下面的代码是合法的:
d = dict([(1, 'a'), (2, 'b'), (3, 'c')])
望采纳。