字典更新语法错误,求助
>>> 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:32 编辑
SyntaxError: keyword can't be an expression ---> 语法错误,keyword 不能是一个表达式,查 Python 文档,如下
我在这里作下翻译:从 这个参数更新字典的键值对,并重写已存在键值,没有返回值,update() 方法接受另一
个字典对象或者是一个可迭代的键值对(元组或其它可迭代对象的长度),如果 keyword 参数被指定给出,那么字典
就会根据给定的键值来更新当前字典,比如 d.update(red=1, blue=2)
"汤姆"这个键是个字符串,Python 中的字符串是一个可迭代对象,而 3 只是一个数字,数字具有不可变性,不是一个
可迭代对象,所以会报错。
若你想更新这个字典,可以这么写:
f.update({3:'ten'})
f = 'ten'
所以我想一直对你们学 Python 的人来说,其实你们问的好多问题都可以通过查阅文档来解决,是英文看不懂吗?我想
应该不是,包括我自己学习都是看文档解决,比如我现在在学 Java,好多都是看 JDK 英文文档,自己翻译! 我上面说错了,报错的原因不是因为由于可迭代对象报错,而是 3 = 'ten' 这个东西出错
后来想了下,这表达式根本就不符合常理, 怎么能把一个值赋值给一个数字呢?更正下我上面
说的!!! 零度非安全 发表于 2017-4-18 18:21
我上面说错了,报错的原因不是因为由于可迭代对象报错,而是 3 = 'ten' 这个东西出错
后来想了下,这表 ...
非常感谢,恍然大悟,明白了。
页:
[1]