如何使用相同的格式说明符进行数组赋值或打印?
How to use same format specifer for array assginement or printing?
我有以下两个数组 meanA 和 stdA。我想将它们组合起来生成第三个数组 C.
meanA = [86.6,87.2,85.4,86.6,83.0,87.2,92.7,80.0,86.6,87.8,89.0,87.8]
stdA = [0.08, 3.1,0.08,2.5,0.1,3.1,1.2,0.4,1.2,1.2,0.0,3.7]
我想使用格式说明符 "%.2f+/-%.2f%%"
组合这两个数组并生成第三个数组 C。我在 python 中将其写为 C = "%.2f+/-%.2f%%" % (meanA , stdA)
。但是,这给我一个错误 TypeError: only size-1 arrays can be converted to Python scalars
.
我知道这个操作只能在标量上进行。但是,我想知道我们也可以在阵列上这样做吗?我想避免多次写同一行,如下所示。
C[0] = "%.2f+/-%.2f%%" % (meanA[0] , stdA[0])
C[1] = "%.2f+/-%.2f%%" % (meanA[1] , stdA[1])
C[2] = "%.2f+/-%.2f%%" % (meanA[2] , stdA[2])
C[3] = "%.2f+/-%.2f%%" % (meanA[3] , stdA[3])
C[4] = "%.2f+/-%.2f%%" % (meanA[4] , stdA[4])
C[5] = "%.2f+/-%.2f%%" % (meanA[5] , stdA[5])
C[6] = "%.2f+/-%.2f%%" % (meanA[6] , stdA[6])
C[7] = "%.2f+/-%.2f%%" % (meanA[7] , stdA[7])
C[8] = "%.2f+/-%.2f%%" % (meanA[8] , stdA[8])
C[9] = "%.2f+/-%.2f%%" % (meanA[9] , stdA[9])
我想要以下输出 C= [86.6+/-0.08, 87.2+/-3.1, 85.4+/-0.08, 86.6+/-2.5, 83.0+/-0.1, 87.2+/-3.1, 92.7+/-1.2, 80.0+/-0.4, 86.6+/-1.2, 87.8+/-1.2, 89.0+/-0.0, 87.8+/-3.7]
.
有谁知道用一行代码完成此操作的最简单方法吗?
提前致谢!
将单个元素输入字符串转换器:
["%.2f+/-%.2f%%" % (a, b) for a, b in zip(meanA, stdA)]
结果:
['86.60+/-0.08%',
'87.20+/-3.10%',
'85.40+/-0.08%',
'86.60+/-2.50%',
'83.00+/-0.10%',
'87.20+/-3.10%',
'92.70+/-1.20%',
'80.00+/-0.40%',
'86.60+/-1.20%',
'87.80+/-1.20%',
'89.00+/-0.00%',
'87.80+/-3.70%']
使用 f 弦看起来更干净一些:
[f'{a:.2f}+-{b:.2f}%' for a, b in zip(meanA, stdA)]
我有以下两个数组 meanA 和 stdA。我想将它们组合起来生成第三个数组 C.
meanA = [86.6,87.2,85.4,86.6,83.0,87.2,92.7,80.0,86.6,87.8,89.0,87.8]
stdA = [0.08, 3.1,0.08,2.5,0.1,3.1,1.2,0.4,1.2,1.2,0.0,3.7]
我想使用格式说明符 "%.2f+/-%.2f%%"
组合这两个数组并生成第三个数组 C。我在 python 中将其写为 C = "%.2f+/-%.2f%%" % (meanA , stdA)
。但是,这给我一个错误 TypeError: only size-1 arrays can be converted to Python scalars
.
我知道这个操作只能在标量上进行。但是,我想知道我们也可以在阵列上这样做吗?我想避免多次写同一行,如下所示。
C[0] = "%.2f+/-%.2f%%" % (meanA[0] , stdA[0])
C[1] = "%.2f+/-%.2f%%" % (meanA[1] , stdA[1])
C[2] = "%.2f+/-%.2f%%" % (meanA[2] , stdA[2])
C[3] = "%.2f+/-%.2f%%" % (meanA[3] , stdA[3])
C[4] = "%.2f+/-%.2f%%" % (meanA[4] , stdA[4])
C[5] = "%.2f+/-%.2f%%" % (meanA[5] , stdA[5])
C[6] = "%.2f+/-%.2f%%" % (meanA[6] , stdA[6])
C[7] = "%.2f+/-%.2f%%" % (meanA[7] , stdA[7])
C[8] = "%.2f+/-%.2f%%" % (meanA[8] , stdA[8])
C[9] = "%.2f+/-%.2f%%" % (meanA[9] , stdA[9])
我想要以下输出 C= [86.6+/-0.08, 87.2+/-3.1, 85.4+/-0.08, 86.6+/-2.5, 83.0+/-0.1, 87.2+/-3.1, 92.7+/-1.2, 80.0+/-0.4, 86.6+/-1.2, 87.8+/-1.2, 89.0+/-0.0, 87.8+/-3.7]
.
有谁知道用一行代码完成此操作的最简单方法吗?
提前致谢!
将单个元素输入字符串转换器:
["%.2f+/-%.2f%%" % (a, b) for a, b in zip(meanA, stdA)]
结果:
['86.60+/-0.08%',
'87.20+/-3.10%',
'85.40+/-0.08%',
'86.60+/-2.50%',
'83.00+/-0.10%',
'87.20+/-3.10%',
'92.70+/-1.20%',
'80.00+/-0.40%',
'86.60+/-1.20%',
'87.80+/-1.20%',
'89.00+/-0.00%',
'87.80+/-3.70%']
使用 f 弦看起来更干净一些:
[f'{a:.2f}+-{b:.2f}%' for a, b in zip(meanA, stdA)]