193 votes

Trouver un élément dans une liste de tuples

J'ai une liste 'a'

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

J'ai besoin de trouver tous les tuples pour un nombre particulier. disons pour 1 ce sera

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

Comment je fais ça ?

313voto

Nadia Alramli Points 40381

Si vous voulez juste que le premier nombre corresponde, vous pouvez le faire comme ceci :

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

Si vous cherchez juste des tuples avec 1 en eux :

[item for item in a if 1 in item]

173voto

Steven Holtzen Points 111

Il existe en fait une façon intelligente de le faire qui est utile pour toute liste de tuples où la taille de chaque tuple est 2 : vous pouvez convertir votre liste en un seul dictionnaire.

Par exemple,

test = [("hi", 1), ("there", 2)]
test = dict(test)
print test["hi"] # prints 1

28voto

S.Lott Points 207588

Lire la liste des compréhensions

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

Lisez également les fonctions du générateur et l'instruction yield.

def filter_value( someList, value ):
    for x, y in someList:
        if x == value :
            yield x,y

result= list( filter_value( a, 1 ) )

12voto

Tendayi Mawushe Points 10335
[tup for tup in a if tup[0] == 1]

10voto

ghostdog74 Points 86060
for item in a:
   if 1 in item:
       print item

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X