我想知道是否有一种方法可以在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:无效语法”错误。
有任何想法吗?
最佳答案
由于需要特定的格式,因此可以执行以下操作,该操作既可以用于分隔符(' | '
)的定义,也可以用于各个值的格式({:.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
的执行速度更快。关于python - 在打印语句中解包参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44384453/