如何使用相同的格式说明符进行数组赋值或打印?

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)]