删除字符串的多个索引

时间:2014-04-26 07:59:45

标签: python string

从字符串中删除索引列表有什么好方法?

关键是,如果我删除索引处的char,则字符串的索引会移位。在这种情况下,我还需要移动列表中的所有索引。这是正确的方法,还是有更直接的方法?

1 个答案:

答案 0 :(得分:6)

字符串是不可变的。因此,删除它中的元素是行不通的。

data = "Welcome"
del data[0]
# TypeError: 'str' object doesn't support item deletion

最好的方法是在没有特定索引的元素的情况下重建字符串并将它们连接在一起,就像这样

data, indexes = "Welcome", {1, 3, 5}
print "".join([char for idx, char in enumerate(data) if idx not in indexes])
# Wloe

请注意,indexes是一组数字,因为集合提供比列表更快的查找。如果您有[1, 3, 5]之类的数字列表,并且想要将它们转换为集合,请使用set函数执行此操作,例如set([1, 3, 5])