python - 如何每行打印出一个元组的元素

标签 python output tuples

下面是我的 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/

相关文章:

python - Python 中 '' 和 ""的区别

python - python中树中的最长路径

c++ - 将 cout 引用到变量位置(文件或 cmd)

python - 在 for 语句中更改列表(元组)列表的值

python - Pygame 声音文件崩溃空闲

python - 值错误 : object too deep for desired array

formatting - 如何在 Maxima 中格式化 Fortran 输出

file - 使用 gradle 4 登录到文件

python - 如何仅允许特定类的元素成为可迭代的元素(对于自定义类)

c# - 如何将值转换为元组(字符串, bool )