鱼C论坛

 找回密码
 立即注册
查看: 3122|回复: 3

字典创建

[复制链接]
发表于 2022-11-9 09:59:27 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
c = dict(99="吕布", 90="关羽", 60="刘备")
萌新提问,请问这样子创建字典为啥不对啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-11-9 10:02:30 | 显示全部楼层
本帖最后由 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: '刘备'}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-9 10:10:47 | 显示全部楼层
本帖最后由 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:'刘备'}
      非要这样用,谁也管不着,你说是不是?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-9 11:52:32 | 显示全部楼层
本帖最后由 快速收敛 于 2022-11-9 11:54 编辑

变量命名规则:
可以由【字母】、【下划线】、【数字】组成
不能【以数字开头】、【与关键字重名】、【内置数据类型】
区分字母大小写的
c = dict(99="吕布", 90="关羽", 60="刘备")
可见代码99,90,60并不满足变量命名规则,赋值失败,语法错误,改成以下绝逼成功:
c = dict(a99="吕布", a90="关羽", a60="刘备")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-25 17:13

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表