2016-08-20 2 views
-4

Gibt es eine Möglichkeit für strengen sublist zu überprüfen:prüft strengen sublist

a = [1,2,3] 
b = [1,3] 
c = [1,2,3,4] 

diese Listen gegeben, mag ich so etwas wie dies zu erreichen:

>> a.is_strict_sublist(c) 
True 

>> b.is_strict_sublist(c) 
False 

Update:

ich umformulieren meine Frage:

Das ist, was ich tun wollte. Ich durchlaufe einen Graphen, wo ich mehrere Pfade habe (Liste der Knoten). Leider finde ich Duplikate und Unterlisten. Gibt es eine bessere Art und Weise Unterlisten anders als mit issubset

Im obigen Beispiel zu entfernen, ich möchte nur zwei Wege: [1,3] und [1,2,3,4]

+1

Schauen Sie sich die Dokumentation an, Sie haben es fast geschafft: https://docs.python.org/3/library/stdtypes.html#set.issubset – Blender

+2

Warum sollte das zweite Beispiel 'False' zurückgeben? Klar sollte es "True" sein ?? –

Antwort

2
>>> a = {1, 2, 3} 
>>> b = {1, 2, 3} 
>>> c = {1, 3} 
>>> b <= a # is subset 
True 
>>> b < a # is strict subset 
False 
>>> c < a 
True 
2

Wie bereits erwähnt, können Sie den set.issubset Aufruf verwenden:

>>> a = [1,2,3] 
>>> b = [1,3] 
>>> c = [1,2,3,4] 
>>> set(a).issubset(b) 
False 
>>> set(a).issubset(c) 
True 
>>> set(b).issubset(c) 

Alternativ kann für eine strenge Teilmenge Spiel, können Sie auch die weniger als Betreiber: