我想从字符串中读取一些字符并将其放入其他字符串中(就像我们在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中实现相同的功能?
答案 0 :(得分:80)
其他答案是正确的,但您当然可以这样做:
>>> str1 = "mystring"
>>> list1 = list(str1)
>>> list1[5] = 'u'
>>> str1 = ''.join(list1)
>>> print(str1)
mystrung
>>> type(str1)
<type 'str'>
如果你真的想要。
答案 1 :(得分:70)
在Python中,字符串是不可变的,因此您无法就地更改字符。
但是,您可以执行以下操作:
for i in str:
srr += i
这有效的原因在于它是:
的捷径for i in str:
srr = srr + i
上面的在每次迭代时都会创建一个新的字符串,并在srr
中存储对该新字符串的引用。
答案 2 :(得分:9)
Python strings是不可变的,所以你在C中尝试做的事情在python中根本不可能。您必须创建一个新字符串。
我想从字符串中读取一些字符并将其放入 其他字符串。
然后使用字符串切片:
>>> s1 = 'Hello world!!'
>>> s2 = s1[6:12]
>>> print s2
world!
答案 3 :(得分:4)
正如aix所提到的 - Python中的字符串是不可变的(你无法在其中更改它们)。
您尝试做的事情可以通过多种方式完成:
# 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[:]
答案 4 :(得分:0)
如果您想将特定字符换成另一个字符,则是另一种方法:
def swap(input_string):
if len(input_string) == 0:
return input_string
if input_string[0] == "x":
return "y" + swap(input_string[1:])
else:
return input_string[0] + swap(input_string[1:])
答案 5 :(得分:-1)
这个解决方案怎么样:
str =“Hello World”(如问题中所述) srr = str +“”
答案 6 :(得分:-3)
您好,您应该尝试使用字符串拆分方法:
i = "Hello world"
output = i.split()
j = 'is not enough'
print 'The', output[1], j