下面是我的 DNA 字符串相邻问题的代码:
chars = "ACGT"
def neighbors(pattern, d):
assert(d <= len(pattern))
if d == 0:
return [pattern]
r2 = neighbors(pattern[1:], d-1)
r = [c + r3 for r3 in r2 for c in chars if c != pattern[0]]
if (d < len(pattern)):
r2 = neighbors(pattern[1:], d)
r += [pattern[0] + r3 for r3 in r2]
return r
def neighbors2(pattern, d):
return ([neighbors(pattern, d2) for d2 in range(d + 1)], [])
print (neighbors2("ACG", 1))
输出如下:
([['ACG'], ['CCG', 'GCG', 'TCG', 'AAG', 'AGG', 'ATG', 'ACA', 'ACC', 'ACT']], [])
我怎样才能添加一些代码并改变输出看起来像这种模式:
CCG
TCG
GCG
AAG
ATG
AGG
ACA
ACC
ACT
ACG
最佳答案
您可以使用 compiler.ast 模块中的 flatten 函数
from compiler.ast import flatten
print flatten(neighbors2("ACG", 1))
会产生
['ACG', 'CCG', 'GCG', 'TCG', 'AAG', 'AGG', 'ATG', 'ACA', 'ACC', 'ACT']
或
print("\n".join(flatten(neighbors2("ACG", 1))))
输出如下:
ACG
CCG
GCG
TCG
AAG
AGG
ATG
ACA
ACC
ACT
关于python - 如何每行打印出一个元组的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35211636/