在打印语句中标记元组变量
Labeling tuple variables in print statement
我遇到了一些格式问题,希望您能提供帮助。基本上,我的程序给了我一个元组列表,我想在每一行上打印这些元组。这部分很简单,但是为了可读性,我想在打印语句中标记元组中的每个元素,如下所示:
[(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="、... 位打印我的元组。我该怎么做?
您可以使用字符串格式。 *
解压 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
我遇到了一些格式问题,希望您能提供帮助。基本上,我的程序给了我一个元组列表,我想在每一行上打印这些元组。这部分很简单,但是为了可读性,我想在打印语句中标记元组中的每个元素,如下所示:
[(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="、... 位打印我的元组。我该怎么做?
您可以使用字符串格式。 *
解压 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