代码之家  ›  专栏  ›  技术社区  ›  BaltoStar

在一定高度上收集所有点的最有效方法是什么?

  •  0
  • BaltoStar  · 技术社区  · 2 年前

    我有一个 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]
    
    1 回复  |  直到 2 年前
        1
  •  1
  •   Thiago Tioma    2 年前

    我认为你可以使用 filter 或列表理解,如本问题所述: How to return a subset of a list that matches a condition

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

    要查询至少有一个点的不同高度集,可以使用Python的set并遍历列表,添加所有高度。集合不允许重复的值,因此只能获得不同的值。

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

    如果您想将结果作为列表,只需调用list方法即可。

    distinctHeightsList = list(heightSet)