Tupel teilweise übereinstimmung

Ich habe ein Tupel von Tupeln und Tupel. Ich bin daran interessiert zu wissen, die Elemente des ersten Tupels entsprechen, das zweite Tupel (falls vorhanden), unter Berücksichtigung teilweise übereinstimmungen zu.

Dies ist eine filter-Funktion, um zu demonstrieren, was ich meine.

def f(repo):
    pattern = (None, None, '1.3')
    for idx, item in enumerate(pattern):
        if item != None and item != repo[idx]:
            return False
    return True

>>> repo = (('framework', 'django', '1.3'), ('cms', 'fein', '1.3'), ('cms', 'django-cms', '2.2'))
>>> filter(f, repo)
(('framework', 'django', '1.3'), ('cms', 'fein', '1.3'))

Filter ist nutzlos in dieser form, weil das Muster kann nicht extern bereitgestellt werden die als argument (ich will die gleiche Funktion zu überprüfen, verschiedene Eingänge). Gibt es eine Möglichkeit dieses Problem zu beheben?

Und, was könnte sein, einen anderen Algorithmus zu umarmen, für eine bessere Lösung für das ursprüngliche problem?

  • Verwenden Sie immer die is Betreiber bei der überprüfung für die None.
InformationsquelleAutor Paolo | 2011-08-24
Schreibe einen Kommentar