'str'对象不支持Python中的项目分配

我想从string中读取一些字符,并将其放入其他string中(就像我们在C中那样)。

所以我的代码如下所示

import string import re str = "Hello World" j = 0 srr = "" for i in str: srr[j] = i #'str' object does not support item assignment j = j + 1 print (srr) 

在C代码可能是

 i = j = 0; while(str[i] != '\0') { srr[j++] = str [i++]; } 

我怎样才能在Python中实现相同的?

在Python中,string是不可变的,所以你不能就地改变它们的字符。

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

 for i in str: srr += i 

这个原因的原因是这是一个捷径:

 for i in str: srr = srr + i 

上面的每个迭代都会创build一个新的string ,并将引用存储到srr

其他答案是正确的,但你当然可以做一些事情:

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

如果你真的想。

Pythonstring是不可变的,所以你想在C中做什么将是根本不可能在Python中。 你将不得不创build一个新的string。

我想从string中读取一些字符,并将其放入其他string中。

然后使用一个string片:

 >>> s1 = 'Hello world!!' >>> s2 = s1[6:12] >>> print s2 world! 

正如所提到的 – Python中的string是不可改变的(你不能在原地改变它们)。

你试图做的事情可以通过很多方式来完成:

 # Copy the string foo = 'Hello' bar = foo # Create a new string by joining all characters of the old string new_string = ''.join(c for c in oldstring) # Slice and copy new_string = oldstring[:] 

这个解决scheme如何:

str =“Hello World”(如问题所述)srr = str +“”

嗨,你应该尝试string拆分方法:

 i = "Hello world" output = i.split() j = 'is not enough' print 'The', output[1], j