python找数组中的最大值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python找数组中的最大值相关的知识,希望对你有一定的参考价值。

参考技术A enumerate()函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标。
x = [3, 2.2, 7.4, 6, 4]
list(enumerate(x))
# 输出 [(0, 3), (1, 2.2), (2, 7.4), (3, 6), (4, 4)]
operator.itemgetter()函数用于获取对象的哪些维的数据,参数为想要取的一些维度序号。
x = [3, 2.2, 7.4, 6, 4]
b1 = operator.itemgetter(2, 1)
b1(x) # 输出 (7.4, 2.2)

b2 = operator.itemgetter(3)
b2(x) # 输出 6
max()函数有一个应用很巧妙的参数key,在这里定义为operator.itemgetter(1),表示对enumerate(x)每个元素的第一维做比较(从0维开始),然后返回第一维值最大的元素,即包含索引和数值。
key参数还有其他的巧妙应用:
# 获取数组中绝对值最大的数
x = [3, 2.2, -7.4, 6, 4]
max(x, key=abs) # 返回 -7.4

# lambda表达式形式
x = [3, 2.2, -7.4, 6, 4]
max(x, key=lambda x: abs(x)) # 返回 -7.

js 找数组中的最值

背景: 2个数组以下 , 比如  [[4, 9, 1, 3], [13, 35, 18, 26], [32, 35, 97, 39], [1000000, 1001, 857, 1]]

找最值的时候,我一开始想用两个 for 循环比较每一个数组中的每一个数组的大小,然后保留最大值(最小值),最后再把它们组成一个新数组。

// 2
function largestOfFour(arr) {
    var maxArr,
        temp=[], // .push()是操作数组
        z;
    for (var i = 0; i < arr.length; i++) {
        z=arr[i][0]; // 重点... 用来比较、保存
        for (var j = 0; j < arr[i].length-1; j++) { // j+1了,防止超出,得-1
            if (arr[i][j+1] > z ){
                z = arr[i][j+1];
            }
        }
        temp.push(z);
    }
    console.log(temp);
}

largestOfFour([[1114, 5, 321, 3], [13, 127, 18, 26], [322, 35, 37, 39], [13000, 1001, 857, 1]]);

缺少基础,写出上面的代码颇有曲折,参考了很久排序算法(主要是选择排序)才慢慢的写出来....

------

中间其实是做不出来了,于是我就百度, 查到了js 里是可以自己算最大值最小值的.....

就是 Math.max()  Math.min() 

数组要放在其中使用的话,要用 apply() 才行

他们是这样举例的...

先是举例用了用 for 循环

var arr=[5,7,9,1]
// alert(Math.max(arr))     这样是不行的。一定要这样写
function getMax(arr){
    var arrLen=arr.length;
    for(var i=0,ret=arr[0];i<arrLen;i++){
        ret=Math.max(ret,arr[i]);       
    }
    return ret;
}

然后是 apply()


var arr=[5,7,9,1];
function getMax2(arr){
    return Math.max.apply(null,arr);
}

...

简洁了很多..很多

然后用到我的题目中呢就是这样的

function largestOfFour(arr){
    var newArr = [],
        temp;
    for (var i = 0; i < arr.length; i++) {
        temp = Math.min.apply(null,arr[i]);
        newArr.push(temp);
    }
    return newArr;
}
largestOfFour([[1,2,3],[5,6],[9,77]]);

还阔以, 也简洁了许多..

请多指教

以上是关于python找数组中的最大值的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode 215. 数组中的第K个最大元素 | Python

leetcode 215. 数组中的第K个最大元素(python)

Leetcode 215. 数组中的第K个最大元素 By Python

python中如何取一列数最大值

编程之美寻找数组中的最大值和最小值

python-027-递归-求序列最大值、计算第n个调和数、转换字符到整数