我有如下序列:
seq = "SDLKFJSOIDHFSODIF"
我想为此制作长度为5的所有不连续子序列。因为有5个可能的阅读框,我想要一个包含以下5个列表的列表:
[["SDLKF", "JSOID", "HFSOD"], ["DLKFJ", "SOIDH", FSODI"], ...]
每个列表中都不会出现所有字符,对于此示例,第5个列表将只有两个条目。这没关系。
如何创建一个将此概括为子序列的所有可能长度的函数?
谢谢! 千斤顶
答案 0 :(得分:3)
通过嵌套列表理解:
>>> [[seq[i: i + 5] for i in range(j, len(seq), 5) if i + 5 <= len(seq)] for j in range(5)]
[['SDLKF', 'JSOID', 'HFSOD'],
['DLKFJ', 'SOIDH', 'FSODI'],
['LKFJS', 'OIDHF', 'SODIF'],
['KFJSO', 'IDHFS'],
['FJSOI', 'DHFSO']]