首页 > 解决方案 > 通过Python在列表中的特定位置查找绝对最大值或最小值

问题描述

我有一个数组列表,如下所示:

data = [([-1.01201792,  2.5,  0.68665077]), ([-2.5,  0.5,  2.68189991]), ([-2.5,  3.5, 5.92202221]), ([-2.5, 5.5, 10.19026759]), ([-2.5, 6.5, 15.30091085])]

我试图在不考虑数组中的第二个值的情况下获取每个数组的绝对最大值。比如第一个数组:([-1.01201792, 2.5, 0.68665077]),不考虑2.5,绝对最大值为1.01201792。

我希望结果是这样的:

result = [1.01201792, 2.68189991, 5.92202221, 10.19026759, 15.30091085]

我怎样才能做到这一点?

标签: pythonarrayslist

解决方案


您应该像编写步骤一样编写代码:

outlist = []                          # create an empty output list
for x in data:                        # for each sublist in data
    val = max(abs(x[0]), abs(x[2]))   # find max of absolute of 1st and 3rd
    outlist.append(val)               # add above value to output list

print(outlist)                        # print the output list

输出:

[1.01201792, 2.68189991, 5.92202221, 10.19026759, 15.30091085]

如果子列表中可能有超过 3 个元素,您可以使用以下内容:

outlist = []                        # create an empty output list
for x in data:                      # for each sublist in data
    x = [x[0]]+x[2:]                # create a new list without 2nd element
    val = max(x)                    # find max of new list
    outlist.append(val)             # add above value to output list

print(outlist)                      # print the output list

推荐阅读