Find an element in a list of tuples

前端 未结 10 765
感动是毒
感动是毒 2020-11-27 10:58

I have a list \'a\'

a= [(1,2),(1,4),(3,5),(5,7)]

I need to find all the tuples for a particular number. say for 1 it will be



        
相关标签:
10条回答
  • 2020-11-27 11:30

    Or takewhile, ( addition to this, example of more values is shown ):

    >>> a= [(1,2),(1,4),(3,5),(5,7),(0,2)]
    >>> import itertools
    >>> list(itertools.takewhile(lambda x: x[0]==1,a))
    [(1, 2), (1, 4)]
    >>> 
    

    if unsorted, like:

    >>> a= [(1,2),(3,5),(1,4),(5,7)]
    >>> import itertools
    >>> list(itertools.takewhile(lambda x: x[0]==1,sorted(a,key=lambda x: x[0]==1)))
    [(1, 2), (1, 4)]
    >>> 
    
    0 讨论(0)
  • 2020-11-27 11:33
    >>> [i for i in a if 1 in i]
    

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

    0 讨论(0)
  • 2020-11-27 11:38

    Read up on List Comprehensions

    [ (x,y) for x, y in a if x  == 1 ]
    

    Also read up up generator functions and the yield statement.

    def filter_value( someList, value ):
        for x, y in someList:
            if x == value :
                yield x,y
    
    result= list( filter_value( a, 1 ) )
    
    0 讨论(0)
  • 2020-11-27 11:45

    If you just want the first number to match you can do it like this:

    [item for item in a if item[0] == 1]
    

    If you are just searching for tuples with 1 in them:

    [item for item in a if 1 in item]
    
    0 讨论(0)
提交回复
热议问题