python - 通过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]
我怎样才能做到这一点?
解决方案
您应该像编写步骤一样编写代码:
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
推荐阅读
- text - 2.10.6 上的 Ofnuts GIMP 工具
- c - 为什么我从 c 中读取二进制文件时得到未定义的值?
- java - 用户有节奏地点击屏幕后实现函数调用
- java - JUnit for Spring Integration Activator,返回类型为 Message
- html - 设置具有多个名称的类的属性
- javascript - JQuery 访问之前的标签文本
- firebase - 已通过身份验证的用户从 Firebase 中读取被拒绝
- sql - SQL(PostgreSQL)中两个表的算术除法
- r - 图例未显示在使用 R 创建的地图中
- python - 启动 Python 时如何运行一组特定的代码