Suche ein Tupel Liste mit den wildcards?

wie kann ich suchen eine Liste von Tupeln, wenn ich nur weiß, 1 element der Tupel in der Liste?

mockup Beispiel (das nicht funktioniert):

tuplelist = [('cat', 'dog'), ('hello', 'goodbye'), ('pretty', 'ugly')]
matchlist = []
searchstring = 'goodbye'

if (*, searchstring) in tuplelist:
    print "match was found"
    matchlist.append(tuplelist[#index of match])

den asterix wäre, wo ich die wildcard

Ich weiß, dass ich verwenden könnte:

for i in range (len(tuplelist)):
    if tuplelist[i][1]==searchstring:
        matchlist.append(tuplelist[i])
        print "match was found"

aber das problem ist, dass ich brauche, um eine bestimmte Funktion nur, wenn keine übereinstimmung gefunden wird.

vielleicht konnte ich einen Zähler, der inkrementiert, wenn eine übereinstimmung gefunden wird, und fügen Sie so etwas wie dies, um den loop.

    if i==len(tuplelist) and matchcounter==0:
        #do something
        print "no match was found"

Aber das ist irgendwie hässlich und unübersichtlich und ich denke, ich bin sicher, es gibt einige Reiniger Weg, dies zu tun 😛

Deine Frage ist ein wenig verwirrend. Es ist nicht wirklich klar, was Ihre Anforderungen sind. In deinem ersten Beispiel hast du nur testen, wenn es eine übereinstimmung gibt, in Ihrem zweiten Beispiel, Sie tun etwas für jeden match.
Byers: Er erwähnt, dass ein problem mit seiner zweiten Beispiel unmittelbar nach es.
Vielleicht, aber es ist nicht klar, ob er einfach nur vergessen legen Sie eine break-Anweisung oder, falls das beabsichtigt war. Eine klare Beschreibung von dem, was er tatsächlich zu tun versuchen, mit einem Beispiel helfen würde, die Sache aufzuklären. Bisher gibt es vier Antworten, und jeder von Ihnen scheinen zu sein, die Beantwortung einer völlig anderen Frage. Ich denke, dass ist der Beweis, dass die Frage nicht klar genug in seiner jetzigen form.
sorry, wenn die Frage ist vage. Die fehlende break-Anweisungen absichtlich war. Ich Suche wollen nur das zweite element jedes Tupel in der Liste, und wenn eine übereinstimmung gefunden wird, möchte ich anfügen, dass Tupel eine zweite Liste, und halten Sie die Iteration, da könnte es mehr dann 1 Spiel. Aber wenn keine übereinstimmung gefunden wird, will ich führen eine andere Funktion, aber, wenn ich innen ein 'else' - Anweisung innerhalb der Schleife dann laufen würde, die "no match" - Funktion für jedes Element in der Liste.
Bitte nicht einen Kommentar auf Ihre Frage. Bitte update die Frage ganz klar sein. Es ist Ihre Frage. Sie können verbessern Sie es, so dass Sie jeder versteht es.

InformationsquelleAutor Steinthor.palsson | 2010-12-30

Schreibe einen Kommentar