Wie der Titel schon sagt, kann es vorkommen, dass Sie überprüfen möchten, ob sich eines der Elemente in einer Liste in einem anderen befindet. In meinem Fall brauchte ich es, um das Problem CheckiO zu lösen, aber ich denke, ich werde die Möglichkeit haben, es in der Praxis anzuwenden.
Als ich nach dem gesucht habe, was passiert ist, [Dieser Artikel über Stapelüberlauf](http://stackoverflow.com/questions/10668282/one-liner-to-check-if-at-least-one-item-in-list -existiert-in-einer-anderen-Liste), daher werde ich die Methode vorstellen.
Ziel ist es, eine Funktion zu erstellen, die eine Liste a und eine andere Liste b enthält und True zurückgibt, wenn sich eines der Elemente in Liste a in Liste b befindet, False, wenn dies nicht der Fall ist.
a = ['A', 'B']
b = ['B', 'C', 'D']
True, weil 'B' in Liste a in Liste b vorhanden ist
a = ['A', 'B']
b = ['C', 'D', 'E']
Falsch, weil weder "A" noch "B" in Liste a in Liste b enthalten sind
def func1(a, b):
return any(i in b for i in a)
Dies ist eine Methode, die einen beliebigen () und einen Generatorausdruck verwendet. Verwenden Sie for i in a
, um die Elemente i einzeln zu extrahieren, und verwenden Sie i in b
, um zu überprüfen, ob das Element i in b vorhanden ist. Da ein Generator verwendet wird, wird True zurückgegeben, wenn bekannt ist, dass er vorhanden ist.
def func2(a, b):
len(set(a) & set(b)) != 0
Es ist eine Methode, um a und b in eine Menge umzuwandeln und zu überprüfen, ob sie einen gemeinsamen Teil haben. Es ist ziemlich leicht zu lesen.
def func3(a, b):
return not set(a).isdisjoint(b)
Verwenden Sie isdisjoint (), was das Gegenteil von Methode 2 ist und True zurückgibt, wenn es keine gemeinsamen Teile hat. Persönlich mag ich nicht nicht.
Bisher habe ich zusammengefasst, wie überprüft werden kann, ob sich eines der Elemente in einer Liste in einer anderen befindet.
Ich habe die Leistung nicht verglichen, aber ich denke, es ist eine gute Idee, diejenige zu wählen, die zu Ihnen passt, während Sie die Lesbarkeit berücksichtigen.
python - one-liner to check if at least one item in list exists in another list? - Stack Overflow