python 字符串语法错误 += 运算符

标签 python string

我在 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/

相关文章:

c - 反向逐字打印字符串?

python - 使用 python 打印 Excel 工作簿

python - 使用 ElementTree 修改 XML 文件

python - 正则表达式:如何在否定前瞻之前引入非贪婪运算符

Python 正则表达式格式

python - python的glob函数是否支持深度可变的通配符?

c - 如何使用字符串文字本身来获取字符

java - 字符串到 HH :mm:ss time and finding the difference between 2 times

python - 如何将每个子列表加入 Python 中的单个字符串?

ruby - 这个计算元音的 Ruby 程序有什么问题?