'str' 对象不支持项目分配

新手上路,请多包涵

我想从字符串中读取一些字符 s1 并将其放入另一个字符串 s2

但是,分配给 s2[j] 会出现错误:

 s2[j] = s1[i]

# TypeError: 'str' object does not support item assignment


在 C 中,这有效:

 int i = j = 0;
while (s1[i] != '\0')
    s2[j++] = s1[i++];

我在 Python 中的尝试:

 s1 = "Hello World"
s2 = ""
j = 0

for i in range(len(s1)):
    s2[j] = s1[i]
    j = j + 1

原文由 Rasmi Ranjan Nayak 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 733
2 个回答

在 Python 中,字符串是不可变的,因此您不能就地更改它们的字符。

但是,您可以执行以下操作:

 for c in s1:
    s2 += c

这样做的原因是它是一个快捷方式:

 for c in s1:
    s2 = s2 + c

以上每次迭代 _都会创建一个新字符串_,并将对该新字符串的引用存储在 s2 中。

原文由 NPE 发布,翻译遵循 CC BY-SA 4.0 许可协议

其他答案是正确的,但你当然可以这样做:

 >>> str1 = "mystring"
>>> list1 = list(str1)
>>> list1[5] = 'u'
>>> str1 = ''.join(list1)
>>> print(str1)
mystrung
>>> type(str1)
<type 'str'>

如果你真的想要。

原文由 Crowman 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题