查找数组列表的最小值和最大值

时间:2015-07-10 13:10:31

标签: python arrays max min

假设我在一个数组中有2个数组,如:

main_array = [[1, 2, 3, 4], [4, 5, 6, 7]]

我想找到每个数组的minmax,并将它们存储在一个数组中。对于上述情况,它将是:

result = [1, 4, 4, 7]

在这种情况下,如何使用内置min()max()的Python?

我试过了min(main_array)max(main_array),但那是给了我:

result = [1,7]

8 个答案:

答案 0 :(得分:10)

您可以在单个列表中使用min()max()来获取其最小值/最大值。您还可以使用列表推导来遍历列表和要使用的函数中的列表:

main_array = [[1,2,3,4], [4,5,6,7]]    
res = [func(l) for l in main_array for func in (min, max)]    
print(res)

答案 1 :(得分:1)

main_array = [[1, 2, 3, 4], [4, 5, 6, 7]]
result = []

for inner_list in main_array:
    result.append(min(inner_list))
    result.append(max(inner_list))

答案 2 :(得分:1)

可能更容易理解的方法是:

result = []
for list in main_array:
    result.append(min(list))
    result.append(max(list))

print(result)

答案 3 :(得分:1)

尝试

main_array = [[1,2,3,4],[4,5,6,7]]

out = []
for arr in main_array:
    out.extend([min(arr), max(arr)])

print(out)

您需要遍历每个子数组并在其上调用minmax

你也可以使用发电机

def minthenmax(arr):
    for i in arr:
        yield min(i)
        yield max(i)

print(list(minthenmax(main_array)))

答案 4 :(得分:0)

你必须在每个项目上搜索最小值和最大值。
    lst = [[1,2,3,4],[4,5,6,7]]
    m = []
    对于k in lst:m.append([min(k),max(k)])
    => [[1,4],[4,7]]

答案 5 :(得分:0)

首先,你错过了主阵列定义中的一个共同点......

 main_array = [[1,2,3,4],[4,5,6,7]]

获取第一个子阵列的最小值。

min(main_array[0])

......和最大......

max(main_array[0])

希望你可以解决这个问题。

答案 6 :(得分:0)

在一行中。您可以使用内置映射函数将两个内部列表映射到min函数,然后映射到max函数。最后你可以连接它们。

map(min, main_array) + map(max, main_array)

答案 7 :(得分:0)

main_array = [[1,2,3,4],[4,5,6,7]]
x = min(main_array[0]), max(main_array[0])
y = min(main_array[1]), max(main_array[1])
new_array = [i for i in x + y]
print (new_array)

输出:

[1, 4, 4, 7]