为了账号安全,请及时绑定邮箱和手机立即绑定

删除不等于n部分的块

删除不等于n部分的块

暮色呼如 2023-10-26 16:54:00
我想把这个序列分成一个 n=3 的列表。codons('agucaccgucautc')# result = ['agu','cac','cgu','cau']# 'tc' is supposed to be ignored as it doesn't equal to n=3我尝试过以下解决方案;def codons(RNA):     """This functions returns a list of codons present in an RNA sequence"""    # store the length of string    length = len(RNA)    #divide the string in n equal parts    n = 3    temp = 0    chars = int(len(RNA)/3)    #stores the array of string    change = []    #check whether a string can be divided into n equal parts    for i in range(0, length, chars):        part = [RNA[i:i+3] for i in range(0, length, n)];        change.append(part);        return part        if (length % n != 0):            continue但是当我尝试再次运行之前的代码时,它仍然返回“tc”codons('agucaccgucautc')# result = ['agu', 'cac', 'cgu', 'cau', 'tc']谁能帮我做什么来忽略任何不等于 n=3 或最后一部分“tc”的字符?
查看完整描述

1 回答

?
波斯汪

TA贡献1811条经验 获得超4个赞

您可以按以下方式使用列表理解:


s = 'agucaccgucautc'

n = 3

out = [(s[i:i+n]) for i in range(0, len(s), n) if len(s[i:i+n])%n == 0] 


查看完整回答
反对 回复 2023-10-26
  • 1 回答
  • 0 关注
  • 98 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信