从指定的索引列表python以外的字符串中删除所有字符

时间:2018-06-06 19:01:20

标签: python string

我有两个字符串:

strA='EEEEEE     HHHH      HHHHHHH' 

和大小相等的字符串B

strB='AJKFKKJSNCKSJNFKSJASLOINCLAJ'

我想创建第三个字符串strC,其中只有strB中的字符对应strA中的给定字符。

例如,我感兴趣的是strB中对应于' H'在strA中,输出应如下所示:

strC='           SJNF      OINCLAJ'

完好无损。

我试过了:

def find(s, ch):
    return [i for i, ltr in enumerate(s) if ltr == ch]

temp = find(strA,' H') 输出是:

temp= [11, 12, 13, 14, 21, 22, 23, 24, 25, 26, 27]

当我尝试通过执行以下操作创建新字符串str_new时:

str_new = strB[temp]

我收到错误

我该怎么做?

1 个答案:

答案 0 :(得分:2)

您可以使用zip

strA='EEEEEE     HHHH      HHHHHHH' 
strB='AJKFKKJSNCKSJNFKSJASLOINCLAJ'
strC = ''.join([' ' if b != 'H' else a for a, b in zip(strB, strA)])

输出:

'           SJNF      OINCLAJ'