打印语句中的解包参数
Unpacking argument in print statements
我想知道是否有一种方法可以解压打印语句中的值,就像解压函数中的参数一样f
这个有效:
import numpy
er = numpy.array([0.36666667, 0.46666667, 0.43333333, numpy.nan])
l = 0.8
print('%0.3f | %0.3f | %0.3f | %0.3f | %0.1f' % (er[0], er[1], er[2], er[3], l))
# 0.367 | 0.467 | 0.433 | nan | 0.8
但是,我想避免使用多个 er[x]
,而是使用 *er
之类的东西,如:
def f(a,b,c,d):
return True
print(f(*er))
# True
我试过了:
#print('%0.3f | %0.3f | %0.3f | %0.3f | %0.1f' % (*(er, numpy.array([l]))))
但是最后一行会产生 "SyntaxError: invalid syntax" 错误。
有什么想法吗?
print('{:.3f} | {:.3f} | {:.3f} | {:.1f} | {:.3f}'.format(*(list(er) + [l])))
确保所有参数都在一个地方,然后再解压它们。
由于您需要特定的格式,您可以执行以下操作,这既允许定义分隔符 (' | '
) 也允许格式化各个值 ({:.3f}
):
print(' | '.join(['{:.3f}'.format(x) for x in er]))
向其添加值是微不足道的:
print(' | '.join(['{:.3f}'.format(x) for x in er]) + ' | {:.1f}'.format(l))
请注意,str.join()
在提供 list
而不是生成器表达式时执行得更快。
您不想解压任何东西,因为您想要 %
之后的元组。
print('%0.3f | %0.3f | %0.3f | %0.3f | %0.1f' % (tuple(er) + (1,)))
0.367 | 0.467 | 0.433 | nan | 1.0
但是你最好使用str.format
。解包在这里很有意义,因为您想将每个数组项作为参数传递给函数。
print('{:0.3f} | {:0.3f} | {:0.3f} | {:0.3f} | {:0.1f}'.format(*er, 1))
0.367 | 0.467 | 0.433 | nan | 1.0
我想知道是否有一种方法可以解压打印语句中的值,就像解压函数中的参数一样f
这个有效:
import numpy
er = numpy.array([0.36666667, 0.46666667, 0.43333333, numpy.nan])
l = 0.8
print('%0.3f | %0.3f | %0.3f | %0.3f | %0.1f' % (er[0], er[1], er[2], er[3], l))
# 0.367 | 0.467 | 0.433 | nan | 0.8
但是,我想避免使用多个 er[x]
,而是使用 *er
之类的东西,如:
def f(a,b,c,d):
return True
print(f(*er))
# True
我试过了:
#print('%0.3f | %0.3f | %0.3f | %0.3f | %0.1f' % (*(er, numpy.array([l]))))
但是最后一行会产生 "SyntaxError: invalid syntax" 错误。
有什么想法吗?
print('{:.3f} | {:.3f} | {:.3f} | {:.1f} | {:.3f}'.format(*(list(er) + [l])))
确保所有参数都在一个地方,然后再解压它们。
由于您需要特定的格式,您可以执行以下操作,这既允许定义分隔符 (' | '
) 也允许格式化各个值 ({:.3f}
):
print(' | '.join(['{:.3f}'.format(x) for x in er]))
向其添加值是微不足道的:
print(' | '.join(['{:.3f}'.format(x) for x in er]) + ' | {:.1f}'.format(l))
请注意,str.join()
在提供 list
而不是生成器表达式时执行得更快。
您不想解压任何东西,因为您想要 %
之后的元组。
print('%0.3f | %0.3f | %0.3f | %0.3f | %0.1f' % (tuple(er) + (1,)))
0.367 | 0.467 | 0.433 | nan | 1.0
但是你最好使用str.format
。解包在这里很有意义,因为您想将每个数组项作为参数传递给函数。
print('{:0.3f} | {:0.3f} | {:0.3f} | {:0.3f} | {:0.1f}'.format(*er, 1))
0.367 | 0.467 | 0.433 | nan | 1.0