gpt4 book ai didi

python - 如何在Python中对列表中的近点进行分组

转载 作者:行者123 更新时间:2023-11-30 21:55:53 24 4
gpt4 key购买 nike

我正在使用列表理解获取一个列表。 lat 说我使用下面的这行代码获取此列表:

quality, angle, distance = measurements[i]
new_data = [each_value for each_value in measurements[i:i + 20] if angle <= each_value[1] <= angle + 30 and
distance - 150 <= each_value[2] <= distance + 150]

其中测量是一个包含(质量、角度、距离)对的大数据集。由此,我得到了这些值(value)。

desired_list= [(1,2,3)(1,5,3),(1,8,3)(1,10,3),(1,16,3),(1, 17,3)]]

现在如何在列表理解中添加新条件,以便仅在角度在某个偏移值范围内时才能获取值?假设两个角度之差小于或等于 5,则将它们放入desired_list 中。

在这种情况下,我的列表应该如下所示:

desired_list= [(1,2,3)(1,5,3),(1,8,3)(1,10,3)]

导致从 2 到 5、5 到 8、8 到 10 的距离小于或等于 5。

但是最后两点不包括在内,因为它们打破了 (1,10,3) 之后的条件,并且不需要检查。

我怎样才能实现这个目标?请帮助我

Note: it doesn't need to be in the same list comprehension. 

最佳答案

你提到数据集很大。取决于您希望避免从头开始创建新列表并仅搜索相关索引的大小。

data = [(1,2,3), (1,5,3), (1,8,3), (1,10,3), (1,16,3), (1,17,3)]

MAXIMUM_ANGLE = 5

def angles_within_range(x, y):
return abs(x[1] - y[1]) <= MAXIMUM_ANGLE

def first_angle_break_index():
for i in range(len(data) - 1):
if not angles_within_range(data[i], data[i+1]):
return i+1

def valid_angles_list():
return data[:first_angle_break_index()]

print(valid_angles_list())

关于python - 如何在Python中对列表中的近点进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55646039/

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