'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