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

2024-05-14 17:08:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两条线:

strA='EEEEEE     HHHH      HHHHHHH' 

和大小相等的B串

strB='AJKFKKJSNCKSJNFKSJASLOINCLAJ'

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

例如,我对strB中字符的位置感兴趣,对应于strA中的“H”,输出应该如下所示:

strC='           SJNF      OINCLAJ'

缝隙完好无损

我试过这个:

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

temp=查找(strA,'H') 输出为:

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

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

str_new = strB[temp]

我出错了

我该怎么做


Tags: 字符串newch字符tempstrltr两条线
1条回答
网友
1楼 · 发布于 2024-05-14 17:08:05

您可以使用zip

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

输出:

'           SJNF      OINCLAJ'

相关问题 更多 >

    热门问题