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

我想从字符串中读取一些字符,然后将其放入其他字符串中(就像我们在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中实现相同的功能?


凤凰求蛊
浏览 931回答 3
3回答

慕容3067478

在Python中,字符串是不可变的,因此您不能就地更改其字符。但是,您可以执行以下操作:for i in str:    srr += i起作用的原因是它是以下操作的快捷方式:for i in str:    srr = srr + i上面的代码在每次迭代时都会创建一个新字符串,并将对该新字符串的引用存储在中srr。

函数式编程

其他答案是正确的,但您当然可以执行以下操作:>>> str1 = "mystring">>> list1 = list(str1)>>> list1[5] = 'u'>>> str1 = ''.join(list1)>>> print(str1)mystrung>>> type(str1)<type 'str'>如果您真的想要。

动漫人物

如aix所述-Python中的字符串是不可变的(您不能就地更改它们)。您要尝试执行的操作可以通过多种方式完成:# Copy the stringfoo = 'Hello'bar = foo# Create a new string by joining all characters of the old stringnew_string = ''.join(c for c in oldstring)# Slice and copynew_string = oldstring[:]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python