python – 通过交换多个字母来修改字符串
发布时间:2020-12-20 12:04:15 所属栏目:Python 来源:网络整理
导读:假设我有一个非常长的字符串,如’ABCEEEEEEDEDAAA ……’,但它只有五个字母组成.假设我希望所有’A’都是’D’,反之亦然,和’B’和’C’相同(例如DNA中的核苷酸……).修改后的例子是’DCBEEEEEEAEADDD …….我意识到像string.replace(‘A’,’D’)这样的代码
假设我有一个非常长的字符串,如’ABCEEEEEEDEDAAA ……’,但它只有五个字母组成.假设我希望所有’A’都是’D’,反之亦然,和’B’和’C’相同(例如DNA中的核苷酸……).修改后的例子是’DCBEEEEEEAEADDD …….我意识到像string.replace(‘A’,’D’)这样的代码.替换(‘D’,’A’)就行不通了.我想知道什么是最快的方法,因为我遇到的另一种方法就是找到每个索引,看起来有点复杂.
解决方法
由于要求是多次替换,因此最好先使用
str.maketranslate() 创建映射表来使用
str.translate() .
使用缩短版本样本的示例,其中’A’ – >’D’,’D’ – >’A’,’B’ – >’C’,’C’ – >’B’ >>> s = 'ABCEEEEEEDEDAAA' >>> orig = 'ABCD' >>> rep = 'DCBA' >>> trans_table = str.maketrans(orig,rep) >>> s.translate(trans_table) => 'DCBEEEEEEAEADDD' 另一种方法是使用str.replace函数,但是对于相同的功能需要更多的代码行.可以使用临时占位符进行替换. 示例:假设只是’A’ – >’B’和’B’ – >’A’ >>> s = 'ABBA' >>> s = s.replace('A','$') #'$BB$' >>> s = s.replace('B','A') #'$AA$' >>> s = s.replace('$','B') >>> s => 'BAAB' 这里$用作占位符.如您所见,这对于需要大量更换而言变得令人厌烦. 注意:在上面的方法中,占位符也应该是唯一的,并且不应该已经存在于字符串中. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |