在某个高度聚集所有点的最有效方法是什么?

问题描述 投票:0回答:1

我有一个

List[List[int]]
代表点 [x,y]

points = [[1,2],[1,3],[2,1],[2,3]]

收集具有特定高度的所有点的最有效方法是什么?

因此,如果我们想要所有高度为 3 ( y == 3 ) 的点:

answer = [[1,3],[2,3]]

我假设有比这更有效的方法:

answer = []
for p in points:
    if p[1] == 3:
        answer.append(p)

进一步,如何查询至少有一个点的一组不同高度?

answer = [1,2,3]
python-3.x list algorithm sorting filter
1个回答
0
投票

我认为您可以使用

filter
或列表理解,如本问题中所述:如何返回与条件匹配的列表子集

answer = [p for p in points if p[1] == 3]

要查询至少有一个点的一组不同高度,您可以使用 Python 的 Set 并迭代列表,添加所有高度。集合不允许重复值,因此您只能得到不同的值。

heightSet = {p[1] for p in points}

如果你想要结果为列表,只需调用列表方法即可。

distinctHeightsList = list(heightSet)
© www.soinside.com 2019 - 2024. All rights reserved.