Skip to main content
 首页 » 编程设计

python之打印语句中的解包参数

2025年05月04日15dudu

我想知道是否有一种方法可以在 print 语句中解包值,就像在函数 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”错误。

有什么想法吗?

请您参考如下方法:

由于您需要特定的格式,您可以执行以下操作,它允许定义分隔符 (' | ') 以及格式化各个值 ({:.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 而不是生成器表达式时执行速度更快。