2010-12-01 280 views
2

我想删除字符串中的字符号码5。所以我做:Python:从字符串中删除字符

德尔线[5]

,并得到: 类型错误:“海峡”对象不支持项目删除

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

回答

6

字符串在Python中是不可变的,所以你不能在原地更改它们。

不过,当然,你可以串片的组合分配回相同的标识:

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

谢谢!使感觉。想象一下,如果你的答案可以被集成到Python的错误信息。如果该错误消息是某种社区wiki,那么我可以自己整合它。我可以在5分钟内接受答案。 – David 2010-12-01 13:24:37

1

我使用类似的功能:

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

指标应该是一个迭代(列表,元组..)

1

bytearray是一种可以在适当位置更改的类型。如果您使用的是Python2.x,它可以非常容易地转换为默认的str类型:字节。

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