192 Stimmen

Wie kann man überprüfen, ob alle der folgenden Elemente in einer Liste enthalten sind?

Ich habe herausgefunden, dass es eine verwandte Frage gibt, wie man herausfinden kann, ob mindestens ein Element in einer Liste existiert:
Wie kann man überprüfen, ob einer der folgenden Punkte in einer Liste enthalten ist?

Aber was ist der beste und pythonische Weg, um herauszufinden, ob alle Elemente in einer Liste vorhanden sind?

Beim Durchsuchen der Dokumente habe ich diese Lösung gefunden:

>>> l = ['a', 'b', 'c']
>>> set(['a', 'b']) <= set(l)
True
>>> set(['a', 'x']) <= set(l)
False

Eine andere Lösung wäre die folgende:

>>> l = ['a', 'b', 'c']
>>> all(x in l for x in ['a', 'b'])
True
>>> all(x in l for x in ['a', 'x'])
False

Aber hier müssen Sie mehr tippen.

Gibt es noch andere Lösungen?

3voto

Johann Lau Punkte 153

Eine andere Lösung wäre:

l = ['a', 'b', 'c']
potential_subset1 = ['a', 'b']
potential_subset2 = ['a', 'x']
print(False not in [i in l for i in potential_subset1]) # True
print(False not in [i in l for i in potential_subset2]) # False

Das Tolle an meiner Lösung ist, dass man Einzeiler schreiben kann, indem man die Listen inline stellt.

1voto

Emirhan Özlen Punkte 468

Das war es, wonach ich online gesucht habe. Aber leider nicht online zu finden, aber beim Experimentieren auf Python-Interpreter.

>>> case  = "caseCamel"
>>> label = "Case Camel"
>>> list  = ["apple", "banana"]
>>>
>>> (case or label) in list
False
>>> list = ["apple", "caseCamel"]
>>> (case or label) in list
True
>>> (case and label) in list
False
>>> list = ["case", "caseCamel", "Case Camel"]
>>> (case and label) in list
True
>>>

und wenn Sie eine lange Liste von Variablen haben, die in einer sublist variable

>>>
>>> list  = ["case", "caseCamel", "Case Camel"]
>>> label = "Case Camel"
>>> case  = "caseCamel"
>>>
>>> sublist = ["unique banana", "very unique banana"]
>>>
>>> # example for if any (at least one) item contained in superset (or statement)
...
>>> next((True for item in sublist if next((True for x in list if x == item), False)), False)
False
>>>
>>> sublist[0] = label
>>>
>>> next((True for item in sublist if next((True for x in list if x == item), False)), False)
True
>>>
>>> # example for whether a subset (all items) contained in superset (and statement)
...
>>> # a bit of demorgan's law
...
>>> next((False for item in sublist if item not in list), True)
False
>>>
>>> sublist[1] = case
>>>
>>> next((False for item in sublist if item not in list), True)
True
>>>
>>> next((True for item in sublist if next((True for x in list if x == item), False)), False)
True
>>>
>>>

1voto

Jundullah Punkte 115

Ein Beispiel für die Verwendung eines Lambda-Ausdrucks wäre dies:

issublist = lambda x, y: 0 in [_ in x for _ in y]

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X