鱼C论坛

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

[已解决]字典更新语法错误,求助

[复制链接]
发表于 2017-4-18 15:52:08 | 显示全部楼层 |阅读模式

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

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

x
>>> g={"米奇":"老鼠","汤姆":"猫"}
>>> g.update(汤姆="老虎")
>>> g
{'汤姆': '老虎', '米奇': '老鼠'}


这个更新没问题;但下面这个字典更新就一直提示语法错误,求解答。

>>>f
{3: 'three', 4: 'four', 5: 'five'}
>>> f.update(3='ten')
SyntaxError: keyword can't be an expression
最佳答案
2017-4-18 17:26:42
本帖最后由 零度非安全 于 2017-4-18 17:32 编辑

SyntaxError: keyword can't be an expression ---> 语法错误,keyword 不能是一个表达式,查 Python 文档,如下

update.png

我在这里作下翻译:从 [other] 这个参数更新字典的键值对,并重写已存在键值,没有返回值,update() 方法接受另一

个字典对象或者是一个可迭代的键值对(元组或其它可迭代对象的长度),如果 keyword 参数被指定给出,那么字典

就会根据给定的键值来更新当前字典,比如 d.update(red=1, blue=2)

"汤姆"这个键是个字符串,Python 中的字符串是一个可迭代对象,而 3 只是一个数字,数字具有不可变性,不是一个

可迭代对象,所以会报错。

若你想更新这个字典,可以这么写:
  1. f.update({3:'ten'})
  2. f[3] = 'ten'
复制代码

所以我想一直对你们学 Python 的人来说,其实你们问的好多问题都可以通过查阅文档来解决,是英文看不懂吗?我想

应该不是,包括我自己学习都是看文档解决,比如我现在在学 Java,好多都是看 JDK 英文文档,自己翻译!
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-4-18 17:26:42 | 显示全部楼层    本楼为最佳答案   
本帖最后由 零度非安全 于 2017-4-18 17:32 编辑

SyntaxError: keyword can't be an expression ---> 语法错误,keyword 不能是一个表达式,查 Python 文档,如下

update.png

我在这里作下翻译:从 [other] 这个参数更新字典的键值对,并重写已存在键值,没有返回值,update() 方法接受另一

个字典对象或者是一个可迭代的键值对(元组或其它可迭代对象的长度),如果 keyword 参数被指定给出,那么字典

就会根据给定的键值来更新当前字典,比如 d.update(red=1, blue=2)

"汤姆"这个键是个字符串,Python 中的字符串是一个可迭代对象,而 3 只是一个数字,数字具有不可变性,不是一个

可迭代对象,所以会报错。

若你想更新这个字典,可以这么写:
  1. f.update({3:'ten'})
  2. f[3] = 'ten'
复制代码

所以我想一直对你们学 Python 的人来说,其实你们问的好多问题都可以通过查阅文档来解决,是英文看不懂吗?我想

应该不是,包括我自己学习都是看文档解决,比如我现在在学 Java,好多都是看 JDK 英文文档,自己翻译!

点评

我很赞同!: 5.0
我很赞同!: 5
零度大大说的没错,多看英文文档,学习了程序同时也锻炼自己的英文  发表于 2017-4-18 17:58
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-4-18 18:21:51 | 显示全部楼层
我上面说错了,报错的原因不是因为由于可迭代对象报错,而是 3 = 'ten' 这个东西出错

后来想了下,这表达式根本就不符合常理, 怎么能把一个值赋值给一个数字呢?更正下我上面

说的!!!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-4-19 17:04:31 | 显示全部楼层
零度非安全 发表于 2017-4-18 18:21
我上面说错了,报错的原因不是因为由于可迭代对象报错,而是 3 = 'ten' 这个东西出错

后来想了下,这表 ...

非常感谢,恍然大悟,明白了。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-17 08:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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