Python 删除字符串的多个索引
从字符串中删除索引列表的好方法是什么Python 删除字符串的多个索引,python,string,Python,String,从字符串中删除索引列表的好方法是什么 关键是,如果我在索引处删除一个char,字符串的索引就会移位。在这种情况下,我也需要移动列表中的所有索引。这是正确的方法还是更直接的方法?字符串是不可变的。因此,从中删除元素将不起作用 data = "Welcome" del data[0] # TypeError: 'str' object doesn't support item deletion 最好的方法是在不使用特定索引中的元素的情况下重构字符串,并将它们连接在一起,如下所示 data, ind
关键是,如果我在索引处删除一个char,字符串的索引就会移位。在这种情况下,我也需要移动列表中的所有索引。这是正确的方法还是更直接的方法?字符串是不可变的。因此,从中删除元素将不起作用
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
请注意,
索引是一组数字,因为集合比列表提供更快的查找速度。如果你有一个像[1,3,5]
这样的数字列表,如果你想把它们转换成一个集合,可以使用set
函数来实现,像这样set([1,3,5])
你只是在问如何从字符串中删除字符吗?按照你的想法,或者使用从字符串末尾开始索引的负索引,或者从最后一个移到第一个,您就不必处理移位。@JoachimIsaksson从最后一个移到第一个是一件好事,要避免移位Python中的字符串与其他语言中的字符串不同;因此,你关于移动索引的问题在Python中不适用。为什么这是最好的方法?@MxyL这是一种简单且不太复杂的方法。Downvoter,我想知道哪里不对,以及如何改进这个答案。请给我解释一下。您不需要内部列表。@BurhanKhalid是的,但是列表的联接速度比生成器表达式快。