错误:' str'对象不支持项目分配

时间:2018-03-24 09:27:07

标签: python string typeerror

我正在将cpp代码更改为python。 但python代码dosent运行。 这是我的python代码:

n,k=input().split()
s=input()
l = len(s)
ans = 0
k=int(k)
for i in range(l):
    ans += max(ord(s[i]) - ord('a'), ord('z') - ord(s[i]))
if (ans < k):
    print("-1")
for i in range(l):
    if ((ord(s[i]) - ord('a')) > (ord('z') - ord(s[i]))):
        now = ord(s[i]) - ord('a')
        if (now >= k) :
            s[i] -= k
            k=0
        else :
            s[i] = chr(ord('a'))
            k -= now
    else:
        now = ord('z') - ord(s[i])
        if (now >= k):
            s[i] =chr(ord(s[i])+ k)
            k=0
        else:
            s[i] ='z'
            k -= now
print(s)

我收到此错误:

...line 22, in <module>
    s[i] =chr(ord(s[i])+ k)
TypeError: 'str' object does not support item assignment

任何人都可以帮助我吗? 非常感谢

1 个答案:

答案 0 :(得分:0)

  • string在python中是不可变的
  • 您正在尝试更改字符串
  • 我建议您将字符串转换为列表:

    string = "abs"
    string_list = list(string)
    print(string_list)
    
  • 输出:

    ['a', 'b', 's']
    
  • 现在对此列表进行操作,因为列表是可变的string_list
  • 在您的代码中,您必须将变量s转换为列表,然后对其进行操作