Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/319.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,从字符串中删除索引列表的好方法是什么 关键是,如果我在索引处删除一个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是的,但是列表的联接速度比生成器表达式快。