繁体   English   中英

Python 查找 100 个子列表的索引最大平均最小值

[英]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]
  1. 从所有列表的索引 0 获取最大值

  2. 从所有列表的索引 1 中获取最小值

  3. 从所有列表的索引 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM