因为我有一个格式化像这样的输出:由逗号分隔的输出行和停留在浮
[0.018801, 0.011839, -3332.980568, 0.009446, -3332.984916, 0.007438, -3332.982958]
[0.020493, 0.015735, -3332.980353, 0.013179, -3332.968465, 0.055135, 0.135461]
[0.020678, 0.018212, -3332.983603, 0.011993, 0.097811, 0.014364, 0.099570]
[0.020758, 0.015798, -3332.982745, 0.013539, 0.086793, 0.007399, -3332.984997]
[-3332.992594, 0.014576, -3332.979745, 0.015103, 0.089420, 0.009226, 0.090133]
然而
,我需要每一行由在逗号分隔为了使其在该位的代码工作:
def mean(a):
return sum(a)/len(a)
a = [A]
print map(mean, zip(*a))
有没有什么办法来实现这一目标,同时仍然保持作为花车的列表?因为', '.join
需要字符串值,不会让我取均值
下面是我用来生成代码:
with open("test2.xls") as w:
w.next() # skip over header row
for row in w:
(date, time, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t,
u, LZA, SZA, LAM) = row.split("\t") # split columns into fields
A = [(float(a) + float(b) + float(c))/3,
(float(d) + float(e) + float(f))/3,
(float(g) + float(h) + float(i))/3,
(float(j) + float(k) + float(l))/3,
(float(m) + float(n) + float(o))/3,
(float(p) + float(q) + float(r))/3,
(float(s) + float(t) + float(u))/3]
任何帮助表示赞赏
澄清:
我不需要更长的列表,我需要列表,我必须是相同的,但每行都用逗号分隔。所以,当我通过这通过意味着:
def mean(a):
return sum(a)/len(a)
a = [A]
print map(mean, zip(*a)
我只得到了最后一排:
[-3332.992594, 0.014576, -3332.979745, 0.015103, 0.089420, 0.009226, 0.090133]
但是,如果我写的输出和一个逗号,像这样分开的每一行:
def mean(a):
return sum(a)/len(a)
a = [[0.018801, 0.011839, -3332.980568, 0.009446, -3332.984916, 0.007438, -3332.982958],
[0.020493, 0.015735, -3332.980353, 0.013179, -3332.968465, 0.055135, 0.135461],
[0.020678, 0.018212, -3332.983603, 0.011993, 0.097811, 0.014364, 0.099570],
[0.020758, 0.015798, -3332.982745, 0.013539, 0.086793, 0.007399, -3332.984997],
[-3332.992594, 0.014576, -3332.979745, 0.015103, 0.089420, 0.009226, 0.090133]]
print map(mean, zip(*a))
我得到的
[-666.582372, 0.015232, -3332.981403, 0.012652, -1333.1358714, 0.018713, -1333.128558]
所需的输出3210
或每列的平均值。 我怎样才能做到这一点,而不必手动用逗号医生A矢量?
对不起,什么?你的意思是建立一个更大的名单?为什么不使用'greaterlist = []'并且在你的循环中执行'greaterlist.append(A)'? –
我真的有*不知道你在这里想达到什么目的。 –