小编典典

“str”对象不支持项目分配

all

我想从一个字符串中读取一些字符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

阅读 55

收藏
2022-06-30

共1个答案

小编典典

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

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

for c in s1:
    s2 += c

之所以有效,是因为它是以下方面的捷径:

for c in s1:
    s2 = s2 + c

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

2022-06-30