Python 遍历字符

5
我一直在尝试在ACGT基因组中搜索序列的中位数字符串。 我遇到的问题是需要从AAAAAAAA到AAAAAAAC等,直到我尝试了每种可能的组合为止。
我基本上采用暴力方法,创建两个列表,一个包含A、C、G、T,另一个包含8个字符的序列,在每次搜索后迭代和交换字符。 问题是,当两个同时迭代时,它会跳过一个字母,导致我没有测试所有的组合。
有没有什么简单的方法可以轻松地从AAAAAAAA到AAAAAAAC,然后到AAAAAAAG,AAAAAAAT,AAAAAACA等?

查看itertools及其组合生成器,product()permutations()combinations()等。在这种情况下,你主要会对product()感兴趣--请参见@jamylak的使用示例。 - Levon
请参阅itertools.combinations。 - Joran Beasley
3个回答

10

使用itertools模块

itertools.product("ACGT", repeat=8)

1
@Tauquir,你不是唯一一个迟到的人.. :) 我也给你点赞。 - Levon

2

如上所建议,使用itertools。

itertools.product("ACGT", repeat=8) # will work in your case.

1

使用pyparsing wiki示例页面中的正则表达式反转器,反转此正则表达式:[ACGT]{8}。您还可以尝试UtilityMill上的在线反转器,但是该服务器在生成8个字符的字符串时会超时,但我已成功地在允许的时间内获得了6个字符。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接