Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:从字符串中删除字符_Python_String - Fatal编程技术网

Python:从字符串中删除字符

Python:从字符串中删除字符,python,string,Python,String,我想删除字符串中的第5个字符。所以我做了: 删除行[5] 得到: TypeError:“str”对象不支持项删除 因此,我不知道是否有不同的有效解决方案来解决这个问题。字符串在Python中是不可变的,因此您不能在适当的位置更改它们 当然,您可以将字符串片段的组合分配回同一标识符: mystr = mystr[:5] + mystr[6:] 我使用的函数类似于: def delstring(mystring, indexes): return ''.join([let for ind, l

我想删除字符串中的第5个字符。所以我做了:

删除行[5]

得到: TypeError:“str”对象不支持项删除


因此,我不知道是否有不同的有效解决方案来解决这个问题。

字符串在Python中是不可变的,因此您不能在适当的位置更改它们

当然,您可以将字符串片段的组合分配回同一标识符:

mystr = mystr[:5] + mystr[6:]

我使用的函数类似于:

def delstring(mystring, indexes):
  return ''.join([let for ind, let in enumerate(mystring) if ind not in indexes])

索引应该是iterable(列表、元组…)

bytearray是一种可以就地更改的类型。如果您使用的是Python2.x,那么它可以很容易地转换为默认的str类型:bytes

b=bytearray(s)
del b[5]
s=str(b)

谢谢有道理。想象一下,如果您的答案可以集成到python错误消息中。想象一下,如果那个错误消息是某种社区维基,那么我可以自己集成它。我可以在5分钟内接受答案。@David:某些基本Python类型(尤其是and)的不变性让许多语言新手感到困惑,但这很有意义,是Python的一个基本概念。毕竟,您也不希望能够就地更改整数值。因此,这被认为是基本的Python知识;这个错误信息对我来说已经足够清楚了。我同意这一点,一个人不能把所有的东西都写在错误信息中。但是想象一下,如果所有错误消息都包含一个指向wiki页面的web链接,其中可以包含有关问题的所有信息/解决方案。