在print语句中标记元组变量

2024-09-30 14:30:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我的格式有点问题,希望你能帮我。基本上,我的程序给我一个元组列表,我想打印在每一行。这一部分很简单,但是为了可读性,我想在print语句的元组中标记每个元素,如下所示:

[(n=0, a=175, t=94, g=292, c=39),
(n=0, a=90, t=33, g=166, c=248),
(n=0, a=121, t=159, g=155, c=165)]

以下是我的代码的相关部分。你知道吗

my_results = zip(results_n, results_a, results_t, results_c, results_g)
#my_results returns a list of tuples

from pprint import pprint
#pprint(my_results, depth=5)
#returns [(0, 175, 94, 292, 39),
#(0, 90, 33, 166, 248),
#(0, 121, 159, 155, 165)]

toople = (0, 175, 94, 292, 39)
(n, a, t, g, c) = toople
#maybe unpacking the tuple will help in some way?

如你所见,我唯一不知道怎么做的就是用额外的“n=”,“a=”。。。位。我该怎么做?你知道吗


Tags: 代码标记程序元素列表my格式语句
2条回答

可以使用字符串格式。*解压result中的每个元素,并将其作为单独的参数发送给format(),后者需要为每个项提供一个参数,而不是包含所有参数的tuple。你知道吗

for result in my_results:
    print('n={}, a={}, t={}, g={}, c={}'.format(*result))

功能方法:

# data for testing
combos = [(0, 175, 94, 292, 39),
          (0, 90,  33, 166, 248),
          (0, 121, 159,155, 165)]
results_n, results_a, results_t, results_c, results_g = zip(*combos)

labels = 'n={}', 'a={}', 't={}', 'g={}', 'c={}'
my_results = '\n'.join((', '.join(f.format(v) for f, v in zip(labels, row))
        for row in zip(results_n, results_a, results_t, results_c, results_g)))
print(my_results)

输出:

n=0, a=175, t=94, g=292, c=39
n=0, a=90, t=33, g=166, c=248
n=0, a=121, t=159, g=155, c=165

相关问题 更多 >