![](/img/trans.png)
[英]Get maximum, minimum and average value of an index in a list in python
[英]Python find indexwise maximum average minimum for list of 100 sublists
我有一个包含 100 多个子列表的列表。 需要使用 python 获取此场景的索引最大值。
L1= [3,2,7]
L2= [1,5,7]
L3= [10,3,6]
从所有列表的索引 0 获取最大值
从所有列表的索引 1 中获取最小值
从所有列表的索引 2 获取平均值
结果列表是[10,2,6.666]
我没有更多的代码,至少有 100 个这样的列表需要这个计算
我可以和你分享一个方法
让我们说只有 2 个列表..你应该尝试将这个逻辑扩展到 100 个列表
L1: [2,8, 1]
L2: [3, 1, 6]
so the answer will be
[3,8,6]
解决这个问题制作一个列表来存储答案
ans = [0,0,0]
现在遍历每个列表并用您在该索引处看到的最大值替换每个索引
在第一个列表之后 ans 看起来像
[2,8,1]
因为所有值都大于零
当您遍历第二个列表时,3 大于 2 并且 6 大于 1,因此您只需更新它们
你的答案将变成
[3,8,6]
很简单: https://numpy.org/
将您的列表列表“LoL”转换为数组...
import numpy as np
LoL = np.asarray([L1, L2, L3])
...然后应用这些聚合...
查看文档了解详细信息。 例如,“最大”: https://numpy.org/doc/stable/reference/generated/numpy.ndarray.max.html#numpy.ndarray.max
使用压缩():
代码:
L1= [3,2,7]
L2= [1,5,7]
L3= [10,3,6]
counter=0
res=[]
for lis in zip(L1,L2,L3): #It brings same index element together in the form of tuples [i.e (3, 1, 10),(2, 5, 3),(7, 7, 6)]
if counter==0:
res.append(max(lis))
counter+=1
elif counter==1:
res.append(min(lis))
counter+=1
else:
res.append(sum(lis)/len(lis)) #mean=sum_of_all_element/total_number_of_element
print(res) #Output [10, 2, 6.666666666666667]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.