为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

凤凰求蛊 2019-10-18 10:34:44
我想从字符串中读取一些字符,然后将其放入其他字符串中(就像我们在C语言中一样)。所以我的代码如下import stringimport restr = "Hello World"j = 0srr = ""for i in str:    srr[j] = i #'str' object does not support item assignment     j = j + 1print (srr)在C中,代码可能是i = j = 0; while(str[i] != '\0'){srr[j++] = str [i++];}如何在Python中实现相同的功能?
查看完整描述

3 回答

?
慕容3067478

TA贡献1773条经验 获得超3个赞

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


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


for i in str:

    srr += i

起作用的原因是它是以下操作的快捷方式:


for i in str:

    srr = srr + i

上面的代码在每次迭代时都会创建一个新字符串,并将对该新字符串的引用存储在中srr。


查看完整回答
反对 回复 2019-10-18
?
函数式编程

TA贡献1807条经验 获得超9个赞

其他答案是正确的,但您当然可以执行以下操作:


>>> str1 = "mystring"

>>> list1 = list(str1)

>>> list1[5] = 'u'

>>> str1 = ''.join(list1)

>>> print(str1)

mystrung

>>> type(str1)

<type 'str'>

如果您真的想要。


查看完整回答
反对 回复 2019-10-18
?
动漫人物

TA贡献1815条经验 获得超10个赞

如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[:]


查看完整回答
反对 回复 2019-10-18
  • 3 回答
  • 0 关注
  • 930 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信