就做个俗人 2022-06-08 17:59 采纳率: 80%
浏览 27
已结题

python 同一位置不同的字符以另一个字符代替?怎样实现

我有两条这样的序列文件,现在我想处理的是:将两条序列,合并为一条序列,其中,相同字符的就保留输出,不相同的就以密码子表代替(R=A/G,Y=C/T,M=A/C,K=G/T,S=G/C,W=A/T等形式替换)并输出,如:

img

原始数据:

A01415
cttatcaattgagcaccggtctcaact
A01416
cttgtccactgagctccggtctcaact

预期结果:
cttrtcmaytgagcwccggtctcaact

  • 写回答

1条回答 默认 最新

  • 请叫我问哥 Python领域新星创作者 2022-06-08 18:23
    关注

    区分大小写吗?

    d = {'AG':'R','CT':'Y','AC':'M','GT':'K','GC':'S','AT':'W'}
    
    s1 = 'cttatcaattgagcaccggtctcaact'
    s2 = 'cttgtccactgagctccggtctcaact'
    
    res = []
    for i in range(len(s1)):
        if s1[i]!=s2[i]:
            key = (s1[i]+s2[i]).upper()
            if not d.get(key): key=(s2[i]+s1[i]).upper()
            res.append(d.get(key).lower())
        else:
            res.append(s1[i])
    
    print(''.join(res))
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 6月18日
  • 已采纳回答 6月10日
  • 创建了问题 6月8日

悬赏问题

  • ¥15 腾讯云如何建立同一个项目中物模型之间的联系
  • ¥30 VMware 云桌面水印如何添加
  • ¥15 用ns3仿真出5G核心网网元
  • ¥15 matlab答疑 关于海上风电的爬坡事件检测
  • ¥88 python部署量化回测异常问题
  • ¥30 酬劳2w元求合作写文章
  • ¥15 在现有系统基础上增加功能
  • ¥15 远程桌面文档内容复制粘贴,格式会变化
  • ¥15 这种微信登录授权 谁可以做啊
  • ¥15 请问我该如何添加自己的数据去运行蚁群算法代码