use*_*034 6 python nested list
假设我们在python中创建一个这样的列表:
[[1, 2, 3], [1, 3, 4], [2, 4, 5]]
Run Code Online (Sandbox Code Playgroud)
然后我想把它1+1+2除以3,得到该元素的平均值并存储在一个新列表中.我想再次为第二个元素做到这一点,最后为第三个元素做.如何简洁地做到这一点?(我想不出除了多个循环之外的其他方法.)
输出应该是一个新列表 [(1+1+2), (2+3+4), (3+4+5)]
非常感谢!
Pav*_*sov 14
平均值:
>>> data = [[1, 2, 3], [1, 3, 4], [2, 4, 5]]
>>> from __future__ import division
>>> [sum(e)/len(e) for e in zip(*data)]
 [1.3333333333333333, 3.0, 4.0]
Run Code Online (Sandbox Code Playgroud)
和:
>>> data = [[1, 2, 3], [1, 3, 4], [2, 4, 5]]
>>> [sum(e) for e in zip(*data)]
 [4, 9, 12]
Run Code Online (Sandbox Code Playgroud)
返回元组列表,其中第i个元组包含来自每个参数序列或迭代的第i个元素.
当参数已经在列表或元组中但需要为需要单独位置参数的函数调用解包时...使用*-operator编写函数调用以从列表或元组中解压缩参数.
>>> data
 [[1, 2, 3], [1, 3, 4], [2, 4, 5]]
>>> zip(*data)
 [(1, 1, 2), (2, 3, 4), (3, 4, 5)]
Run Code Online (Sandbox Code Playgroud)