在同一行上打印字符串和变量

时间:2016-08-04 14:30:28

标签: python string python-2.7 variables printing

我有一个包含三个内容的标题数组。我的程序遍历标题的所有组合,并查看它们是并发还是不并发。

当我运行程序时,我希望它打印哪两个头是并发的,哪些不是并发的。所以基本上在打印时,而不是打印sequences are concurrent / sequences are not concurrent,我希望它说header a is concurrent to header bheader b is not concurrent to header c等。

这是我的计划:

c=combinations(header,2)
for p in combinations(sequence,2):
    if p[0][start:stop]==p[1][start:stop]:
        print header[p[0],p[1]], "are concurrent"
    else:
        print header[p[0],p[1]], "are not concurrent"
print list(c)

我知道问题是第四和第六行。请帮忙。使用此代码,我得到TypeError: list indices must be integers, not tuple.

有人要求我的标题和序列的例子...... 我的标题如下: ('> DQB1','> OMIXON','> GENDX')

我的序列如下: ('GACTAAAAAGCTA','GACTAAAAAGCTA','GAAAACTGGGGGA')

2 个答案:

答案 0 :(得分:2)

您希望将两个列表合并为一个:

for (h1, s1), (h2, s2) in combinations(zip(header, sequence), 2):
    if s1[start:stop] == s2[start:stop]:
        print h1, h2, "are concurrent"
    else:
        print h1, h2, "are not concurrent"

或减少重复代码:

for (h1, s1), (h2, s2) in combinations(zip(header, sequence), 2):
    concurrent = s1[start:stop] == s2[start:stop]
    print "{} and {} are{} concurrent".format(h1, h2, "" if concurrent else " not")

答案 1 :(得分:0)

Python 中格式化字符串的最佳方法是这样的:

"{} and {} are concurrent".format(header[p[0]],header[p[1]])

也可以使用多个占位符{}