如何每行打印一个元组的元素 [英] How to print out elements of tuple one per line

查看:43
本文介绍了如何每行打印一个元组的元素的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

以下是我的 DNA 字符串相邻问题的代码:

Below is my code for a DNA string neighboring question:

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']], [])

如何添加一些代码并将输出更改为这种模式:

How can I add some codes and change the output looking like this kind of pattern:

CCG
TCG
GCG
AAG
ATG
AGG
ACA
ACC
ACT
ACG

推荐答案

你可以使用compiler.ast模块中的flatten函数

You can use flatten function from compiler.ast module

from compiler.ast import flatten
print flatten(neighbors2("ACG", 1))

会产生

['ACG', 'CCG', 'GCG', 'TCG', 'AAG', 'AGG', 'ATG', 'ACA', 'ACC', 'ACT']

print("
".join(flatten(neighbors2("ACG", 1))))

有这样的输出:

ACG
CCG
GCG
TCG
AAG
AGG
ATG
ACA
ACC
ACT

这篇关于如何每行打印一个元组的元素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆