我在 Python 2.7.3 中遇到语法错误,如下所示:
[s += 'Orig' for s in strs]
File "<stdin>", line 1
[s += 'Orig' for s in strs]
^
SyntaxError: invalid syntax
其中 strs 只是一个字符串列表,如 ['a', 'b', 'c', 'd']
如果我将代码更改为:
[s + 'Orig' for s in strs]
然后就可以了:
['aOrig', 'bOrig', 'cOrig', 'dOrig']
这背后的原因是什么?是因为列表理解中的 s 是不可变的吗?但它应该是一个临时对象,以后无论如何都会被丢弃,为什么不呢?
另外,做我想做的事情最有效的方法是什么?我查看了另一个链接:http://www.skymind.com/~ocrow/python_string/并尝试使用 join,但 join 并没有按照我的意愿进行;它将一个字符串列表连接成一个字符串,而我想将一个字符串附加到一个字符串列表中。
最佳答案
你不能这样做。 s += 'Orig'
是 s = s + Orig
的简写,是一个赋值。为清楚起见,python 不允许您将赋值语句放在其他语句中。查看Why can’t I use an assignment in an expression?在 Python 常见问题解答中了解更多详细信息。
关于python 字符串语法错误 += 运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11058482/