python中str赋值后怎么办_错误:'str'对象不支持项目赋值python

Python中字符串(str)是不可变对象,因此不能直接更改其字符。当尝试对字符串进行项目赋值时,会抛出'.str' object does not support item assignment错误。解决方法是创建新的字符串。示例代码展示了如何在不改变原字符串的情况下进行替换操作。
摘要由CSDN通过智能技术生成

3 个答案:

答案 0 :(得分:4)

Python不允许您将字符串中的字符换成另一个字符;字符串是不可变的。你需要做的是创建一个完全不同的字符串并返回它。

dict=['A', 'a','B', 'b','C', 'c','D', 'd','E', 'e','F', 'f','G', 'g','H', 'h','I', 'i','J', 'j','K', 'k','L', 'l','M', 'm','N', 'n','P', 'o','P', 'p','Q', 'q','R', 'r','S', 's','T', 't','U', 'u','V', 'v','W', 'w','X', 'x','Y', 'y','Z' 'z']

def cript(s):

crypt_s = ""

for i in range(0,len(s)):

a=dict.index(s[i])

if a<26:

crypt_s += dict[a+26]

else:

crypt_s += dict[a-26]

return crypt_s

print cript('Hello')

当然,代码可能存在其他问题,但这将解决该特定错误消息。

答案 1 :(得分:2)

字符串是不可变对象,意味着它们无法在适当的位置进行修改(您必须返回一个新字符串并重新分配)。

s[i] = dict[a + 26]

正在尝试重新分配字符串中的值

这是一个更容易看到的例子

>>> astring = "Hello"

>>> astring[0] = "a"

Traceback (most recent call last):

File "", line 1, in

astring[0] = "a"

TypeError: 'str' object does not support item assignment

答案 2 :(得分:0)

def game():

list = ["pomme", "anniversaire", "table", "travail", "amies", "enfants"]

ran = random.randint(0, (len(list)-1)/2)

mot = list[ran]

length = len(mot)

for x in range(0, length-1):

if length % 2 ==0:

a = int(random.randint(-length/2, length/2))

else:

a = int(random.randint(-(length-1)/2, (length-1)/2))

mot[x] = mot[x+a]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值