ich habe ein "Haupt"-liste mit integern und eine verschachtelte liste ebenfals mit integern. Nun möchte ich die elemente der verschachtelten Liste heraus ziehen, die genau 3 elemente mit der "Haupt"-liste gemeinsam haben. Je nach dem welche position die gemeinsamen Elemente der haben soll noch in 4 Fälle unterschieden werden.
Momentan läuft das über eine for-schleife in kombination mit einer list-comprehension über:
Code: Alles auswählen
# INPUT
hauptliste= [1,2,3,4,5,6,7,8,9]
sub_liste = [[1,2,10,4],
[5,20,10,9],
[8,30,5,7]]
# INPUT-ENDE
hauptliste = set(hauptliste)
rslt = []
for i,sub_liste_i in enumerate(sub_liste):
tmp = [item in hauptliste for item in sub_liste_i]
if sum(tmp)==3:
if tmp[0] and tmp[1] and tmp[2]: # CASE 1
rslt.append([i,1])
elif tmp[0] and tmp[1] and tmp[3]: # CASE 2
rslt.append([i,2])
elif tmp[1] and tmp[2] and tmp[3]: # CASE 3
rslt.append([i,3])
else:
rslt.append([i,4]) # CASE 4
print rslt
Grüße