当索引在列表中时,删除许多特定索引处的字符串中的char

时间:2018-03-06 12:37:02

标签: python string python-2.7

我想从列表seq_in = 'KPKPAJDSKGRPRRKAPPP'中的特定索引处删除字符串ind = [0, 1, 2, 3, 8, 10, 11, 12, 13, 14, 16, 17, 18]中的字符。结果应为'AJDSGA'。我通过循环remove()列表尝试ind字符串,但每个字符的索引都被移位了。

如何在没有循环的情况下从列表中删除索引处的多个字符?

1 个答案:

答案 0 :(得分:3)

您可以使用enumerateind中使用生成器表达式来获取每个字母的索引。如果索引不在>>> ''.join(j for i,j in enumerate(seq_in) if i not in ind) 'AJDSGA' 中,请保留。

ind

正如评论中所提到的,如果setlist,那么您的查询会比>>> ind = {0, 1, 2, 3, 8, 10, 11, 12, 13, 14, 16, 17, 18} >>> ''.join(j for i,j in enumerate(seq_in) if i not in ind) 'AJDSGA'

更快。
s