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

如何在集合中查找特定元素?

  •  0
  • user6822657  · 技术社区  · 7 年前

    给定一组元组(x,y):

    set([(1,2),(3,4),(3,2),(1,4)])
    

    如何找到集合中具有属性(1,z)的每个元组?

    在本例中,边(1,2)、(1,4)。

    编辑:是否有其他数据结构支持此类请求?

    1 回复  |  直到 7 年前
        1
  •  2
  •   Mazdak    7 年前

    使用理解(集合或列表):

    In [145]: st = set([(1,2),(3,4),(3,2),(1,4)])
    
    In [146]: [(i, j) for i, j in st if i == 1]
    Out[146]: [(1, 2), (1, 4)]
    
    In [147]: {(i, j) for i, j in st if i == 1}
    Out[147]: {(1, 2), (1, 4)}
    

    或者,如果您不希望结果出现在容器中,也就是说,您只想循环结果等。您可以通过使用内置的 filter 功能:

    result = filter(lambda x: x[0] == 1, st)