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

4dc9hkyq  于 2023-01-08  发布在  Python
关注(0)|答案(3)|浏览(97)

我有一个包含100+子列表的列表。需要使用python获取此场景的索引最大值。

L1= [3,2,7]
L2= [1,5,7]
L3= [10,3,6]

1.从所有列表的索引0获取最大值
1.从所有列表的索引1获取最小值
1.从所有列表的索引2获取平均值
结果列表为[10,2,6.666]
我没有更多的代码,至少有100个这样的列表需要进行此计算

vzgqcmou

vzgqcmou1#

我可以和你们分享一种方法
假设只有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]
js81xvg6

js81xvg62#

很简单:https://numpy.org/
将列表"LoL"的列表转换为数组...

import numpy as np
LoL = np.asarray([L1, L2, L3])

...然后应用这些聚合...
Check the docs for details. E.g., "max": https://numpy.org/doc/stable/reference/generated/numpy.ndarray.max.html#numpy.ndarray.max

i34xakig

i34xakig3#

使用zip():

    • 代码:**
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]

相关问题