TypeError:“str”对象不支持项赋值

2024-05-09 04:51:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我的python程序有问题。然后从该程序中输入一个最接近的ASCII-o,然后从该程序中输入一个字符串 TypeError: 'str' object does not support item assignment

代码:

__author__ = 'neo'
ceviri = {
    'ş':'s','Ş':'S',
    'ğ':'g','Ğ':'G',
    'ı':'i','İ':'I',
    'ü':'u','Ü':'U',
    'ö':'o','Ö':'O'
}
def karakterDegistir(x):
   p = x[:]
   y = sorted(ceviri.keys())
   u = 0
   while u < len(y):
      if p[u] in y:
         p[u] = ceviri[p[u]]
      u = u + 1
   return p
print(karakterDegistir('şeker'))

Tags: 字符串代码程序supportobjectasciinotitem
1条回答
网友
1楼 · 发布于 2024-05-09 04:51:49

除了Barmar关于python不允许您就地修改字符串的评论之外,您正在迭代输入数组的副本,但是要达到y(键列表)的长度,而不是p的长度

更像Python的方式 return ''.join([ceviri.get(c,c) for c in x])

(编辑:谢谢戴尔),既然我在编辑: 澄清:这将遍历x中的每个字母,如果该字母在ceviri字典中,则返回值,否则使用原始字母。这将创建字母“”的列表。join将所有字母组合成一个字符串。在

相关问题 更多 >