我想从列表seq_in = 'KPKPAJDSKGRPRRKAPPP'
中的特定索引处删除字符串ind = [0, 1, 2, 3, 8, 10, 11, 12, 13, 14, 16, 17, 18]
中的字符。结果应为'AJDSGA'
。我通过循环remove()
列表尝试ind
字符串,但每个字符的索引都被移位了。
如何在没有循环的情况下从列表中删除索引处的多个字符?
答案 0 :(得分:3)
您可以使用enumerate
在ind
中使用生成器表达式来获取每个字母的索引。如果索引不在>>> ''.join(j for i,j in enumerate(seq_in) if i not in ind)
'AJDSGA'
中,请保留。
ind
正如评论中所提到的,如果set
是list
,那么您的查询会比>>> 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