blo*_*ood 1 python average list
我需要平均nPython 列表中的每个元素,n = 3在这个例子中:
list1 = [1, 2, 3, 4, 5, 6, 7, 8, 9]
Run Code Online (Sandbox Code Playgroud)
这样输出列表将是:
list2 = [2, 2, 2, 5, 5, 5, 8, 8, 8]
Run Code Online (Sandbox Code Playgroud)
您可以[2,5,8]像这样在列表理解中计算列表:
list1 = [1,2,3,4,5,6,7,8,9]
n = 3
list2 = [sum(list1[i:i+n])//n for i in range(0,len(list1),n)]
Run Code Online (Sandbox Code Playgroud)
然后按照list1您的要求将其放回(保留大小),如下所示:
for i in range(len(list1)):
list1[i] = list2[i//n]
Run Code Online (Sandbox Code Playgroud)
或使用列表理解:
list1 = [list2[i//n] for i in range(len(list1))]
Run Code Online (Sandbox Code Playgroud)
最终编辑:找到了一个不错的 oneliner 来总结一下:
import itertools
list1 = list(itertools.chain.from_iterable([i]*n for i in [sum(list1[i:i+n])//n for i in range(0,len(list1),n)]))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13517 次 |
| 最近记录: |