字典创建
c = dict(99="吕布", 90="关羽", 60="刘备")萌新提问,请问这样子创建字典为啥不对啊 本帖最后由 tommyyu 于 2022-11-9 10:33 编辑
语法不允许,python不允许让你给一个数字右边加等号,因为你在执行 dict(99 = '吕布', 90 = '关羽', 60 = '刘备') 这一行语句的时候,99、90、60是收集参数,从某种意义上来说,也是变量名,但是python是不允许变量名以数字开头的。如果真的想要用 dict 创造这个字典的话,可以这样写:>>> c = dict(((99, '吕布'), (90, '关羽'), (60, '刘备')))
>>> c
{99: '吕布', 90: '关羽', 60: '刘备'} 本帖最后由 jackz007 于 2022-11-9 13:49 编辑
>>> c = dict(99="吕布", 90="关羽", 60="刘备")
SyntaxError: keyword can't be an expression
>>>
错误信息的意思是,字典的 key 不可以是一个表达式(必须是一个字符串)。
c = dict(吕布=99, 关羽=90, 刘备=60)
用 key = value 的方式赋值,key 必须出现在等号的左侧
当然,dict(key = value) 显然是受制于函数可选参数的使用规则,并非字典有这样的要求,如果不用 dict() 函数就自由多了。
c = {99:'吕布', 90:'关羽', 60:'刘备'}
非要这样用,谁也管不着,你说是不是? 本帖最后由 快速收敛 于 2022-11-9 11:54 编辑
变量命名规则:
可以由【字母】、【下划线】、【数字】组成
不能【以数字开头】、【与关键字重名】、【内置数据类型】
区分字母大小写的
c = dict(99="吕布", 90="关羽", 60="刘备")
可见代码99,90,60并不满足变量命名规则,赋值失败,语法错误,改成以下绝逼成功:
c = dict(a99="吕布", a90="关羽", a60="刘备")
页:
[1]