鱼C论坛

 找回密码
 立即注册
查看: 2856|回复: 14

[已解决]字典建立方法问题求助

[复制链接]
发表于 2023-3-18 20:16:15 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 yzs193728 于 2023-3-18 20:17 编辑

b = dict(吕布="口口布", 关羽="关习习", 刘备="刘baby")
c = dict(99="吕布", 90="关羽", 60="刘备")
SyntaxError: expression cannot contain assignment, perhaps you meant "=="?
c = dict('99'="吕布", '90'="关羽", '60'="刘备")
SyntaxError: expression cannot contain assignment, perhaps you meant "=="?

#为何字典b能成功建立,c却不行呢?
最佳答案
2023-3-18 20:27:49
b 能够成功创建为字典的原因是其键是有效的标识符,也就是遵循 Python 中变量命名的规则。

然而,在 c 中,键不是有效的标识符,因为它们以数字开头。在 Python 中,变量名不能以数字开头,参数的名字也一样,而且参数也不能用字符字面量,这就是为什么会出现语法错误的原因。

所以如果键是数字,或者不符合变量命名规则,就不能用关键字传参的方式来调用 dict

可以换别的方式,比如以下几种方式:
c = dict([(99,"吕布"), (90, "关羽"), (60, "刘备")])
c = dict(zip((99, 90, 60), ("吕布", "关羽", "刘备")))
c = {99: "吕布", 90: "关羽", 60: "刘备"}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-3-18 20:27:09 | 显示全部楼层
因为用()命名时不能以数字开头
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-18 20:27:16 | 显示全部楼层
b = dict(吕布 = "口口布", 关羽 = "关习习", 刘备 = "刘baby")
c = {99: "吕布", 90: "关羽", 60: "刘备"}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-18 20:27:49 | 显示全部楼层    本楼为最佳答案   
b 能够成功创建为字典的原因是其键是有效的标识符,也就是遵循 Python 中变量命名的规则。

然而,在 c 中,键不是有效的标识符,因为它们以数字开头。在 Python 中,变量名不能以数字开头,参数的名字也一样,而且参数也不能用字符字面量,这就是为什么会出现语法错误的原因。

所以如果键是数字,或者不符合变量命名规则,就不能用关键字传参的方式来调用 dict

可以换别的方式,比如以下几种方式:
c = dict([(99,"吕布"), (90, "关羽"), (60, "刘备")])
c = dict(zip((99, 90, 60), ("吕布", "关羽", "刘备")))
c = {99: "吕布", 90: "关羽", 60: "刘备"}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-18 20:28:44 | 显示全部楼层
sfqxx 发表于 2023-3-18 20:27
因为用()命名时不能以数字开头

?
b = dict(吕布 = "口口布", 关羽 = "关习习", 刘备 = "刘baby")
c = {99: "吕布", 90: "关羽", 60: "刘备"}

print(c) # {99: '吕布', 90: '关羽', 60: '刘备'}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-18 20:56:51 | 显示全部楼层
isdkz 发表于 2023-3-18 20:27
b 能够成功创建为字典的原因是其键是有效的标识符,也就是遵循 Python 中变量命名的规则。

然而,在 c  ...

c h a t g p t?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-18 21:59:45 | 显示全部楼层

c h a t g p t是啥
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-18 22:15:02 | 显示全部楼层
isdkz 发表于 2023-3-18 20:27
b 能够成功创建为字典的原因是其键是有效的标识符,也就是遵循 Python 中变量命名的规则。

然而,在 c  ...

6,等别人下次提问,我就要用Newbing辣
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-18 22:24:40 | 显示全部楼层
本帖最后由 isdkz 于 2023-3-18 22:27 编辑
wyhpylc 发表于 2023-3-18 22:15
6,等别人下次提问,我就要用Newbing辣


现在新必应完全用不了,还没找到方法解决,而且新必应老是出错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-18 22:28:58 | 显示全部楼层
isdkz 发表于 2023-3-18 22:24
现在新必应完全用不了,还没找到方法解决,而且新必应老是出错

开VPN可以,代理不行,反正我是这样
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-18 22:43:14 | 显示全部楼层
isdkz 发表于 2023-3-18 22:24
现在新必应完全用不了,还没找到方法解决,而且新必应老是出错

2023-03-18_224240.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-18 22:45:06 | 显示全部楼层

看来现在是不能改 x-forwarded-for 了,改了就用不了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-18 22:47:19 | 显示全部楼层

不过新必应的答案好像不是很准确
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-19 10:01:57 | 显示全部楼层
isdkz 发表于 2023-3-18 22:45
看来现在是不能改 x-forwarded-for 了,改了就用不了

是的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-19 10:02:41 | 显示全部楼层
isdkz 发表于 2023-3-18 22:47
不过新必应的答案好像不是很准确


但是至少不花钱啊,而且更有人情味(说话有人情味)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-31 03:51

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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