gpt4 book ai didi

python - 使用 python 在列表中查找唯一的最大值

转载 作者:太空宇宙 更新时间:2023-11-04 07:13:00 25 4
gpt4 key购买 nike

我有如下所示的点列表

points=[ [x0,y0,v0],  [x1,y1,v1],  [x2,y2,v2].......... [xn,yn,vn]]

一些点有重复的 x,y 值。我要做的是提取唯一的最大值x,y点

例如,如果我有点 [1,2,5] [1,1,3] [1,2,7] [1,7,3]

我想获取列表[1,1,3] [1,2,7] [1,7,3]

我如何在 python 中执行此操作?

谢谢

最佳答案

例如:

import itertools

def getxy(point): return point[:2]

sortedpoints = sorted(points, key=getxy)

results = []

for xy, g in itertools.groupby(sortedpoints, key=getxy):
results.append(max(g, key=operator.itemgetter(2)))

即:按 xy 对点进行排序和分组,对于每个具有固定 xy 的组,选择具有最大 z 的点。如果您对 itertools 感到满意,这似乎很简单(你应该是,它真的是一个非常强大和有用的模块!)。

或者,您可以使用 (x,y) 元组作为键,z 列表作为值来构建一个字典,然后最后一次传递该字典以选择最大值z 用于每个 (x, y),但我认为排序和分组方法更可取(除非您有数百万个点,以便 big-O 性能我猜,出于可扩展性目的,排序会让您担心)。

关于python - 使用 python 在列表中查找唯一的最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2434251/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com