鱼C论坛

 找回密码
 立即注册
查看: 2279|回复: 4

[已解决]难道这是python的bug?

[复制链接]
发表于 2021-1-26 23:01:35 | 显示全部楼层 |阅读模式

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

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

x
今天学习了字典的方法。

里面有一个update()方法。是更新字典的意思。

我找了个例子,尝试了一下:

  1. >>> dict2
  2. {'李宁': '一切皆有可能', '耐克': 'Just Fuck It', '阿迪达斯': 'Impossible is nothing', '鱼C工作室': '让编程改变世界', '妇炎洁': '洗洗更健康'}
  3. >>> dict2.update(阿迪达斯='Impossible is everything')
  4. >>> dict2
  5. {'李宁': '一切皆有可能', '耐克': 'Just Fuck It', '阿迪达斯': 'Impossible is everything', '鱼C工作室': '让编程改变世界', '妇炎洁': '洗洗更健康'}
复制代码


完美!

我又找了个例子试了一下:

  1. >>> c
  2. {1: 'A', 2: 'b', 3: 'c', 4: 'd', 5: 'e', 6: None, 7: 'g'}
  3. >>> c.update(6='f')
  4. SyntaxError: expression cannot contain assignment, perhaps you meant "=="?
复制代码


创建字典的时候,允许key为数字,你.update()作为字典的一个内建方法,你不允许key为数字?你算老几?

谁能告诉我这是为什么?以及,上面的例子,我如何把6这个key的value更新为f
最佳答案
2021-1-27 10:46:49
不是BUG。
把update参数单独拿出来,
  1. 阿迪达斯='Impossible is everything'
复制代码
是符合变量命名规则的,可以单独运行,而
  1. 6='f'
复制代码
不行,因为这不符合变量命名规则(变量名不能以数字开头,不能是纯数字等), c.update(6='f')报错是因为里面不符合变量命名规则。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-1-26 23:19:19 | 显示全部楼层
本帖最后由 jackz007 于 2021-1-26 23:21 编辑
  1. c = {1: 'A', 2: 'b', 3: 'c', 4: 'd', 5: 'e', 6: None, 7: 'g'}
  2. c[6]='f'
复制代码

        字典的键名通常应该是字符串。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-27 08:55:18 | 显示全部楼层
本帖最后由 曼查克 于 2021-1-27 09:07 编辑

这样是可以的:
  1. >>> c.update({6 :'e'})
复制代码


参数需要时字典类型

至于你第一次能成功,我特地翻看了一下原视频,
猜测’阿迪达斯‘会被解释成字符串,而阿迪达斯既不是字符串,也不是整型、布尔。。所以就被解释成键值。
而第二次报错也许是键值被直接解释成整型了吧。



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

使用道具 举报

发表于 2021-1-27 10:46:49 From FishC Mobile | 显示全部楼层    本楼为最佳答案   
不是BUG。
把update参数单独拿出来,
  1. 阿迪达斯='Impossible is everything'
复制代码
是符合变量命名规则的,可以单独运行,而
  1. 6='f'
复制代码
不行,因为这不符合变量命名规则(变量名不能以数字开头,不能是纯数字等), c.update(6='f')报错是因为里面不符合变量命名规则。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2021-1-27 11:26:22 | 显示全部楼层
学习了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-12 03:01

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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