Mit einer Liste von Sätzen, hätte ich gerne eine Liste, die die Schnittmenge zwischen dem ersten Satz mit dem zweiten, dem zweiten mit dem dritten und so weiter hat. Zum Beispiel:Python paarweise Kreuzung in der Liste
list_of_sets=[set([1,2,3,4,5]),set([1,2,3,5]),set([4,5,6])
meine_liste_len=len(list_of_sets)
pairwise_intersection_list=[]
for x in range(0,meine_liste_len-1):
for y in range(1,meine_liste_len):
pairwise_intersection_list.append(set x.intersection(set(y)))
würde Ich mag
pairwise_intersection_list=set(([1,2,3]),([5]))
als Ergebnis haben.
Die erste Antwort ist eine wirklich gute, die keinen Import eines Moduls erfordert. Eine andere (die zip verwendet) wäre:
pairwiseintersect_list=([i.intersection(j) for i,j inzip(list_of_sets,list_of_sets[1:])
Was schief gelaufen? – tdelaney
Sie möchten, dass das Endergebnis ein einzelner Satz mit mehreren Listen ist? Listen sind nicht hashbar, das wird also nicht funktionieren. – tdelaney
Sie können ein laufendes Beispiel veröffentlichen (oder so nah wie möglich). Zum Beispiel existiert 'meine_liste_len' nicht. Wenn ich eine Lösung posten möchte, muss ich herausfinden, was diese Variablen sind und sie hinzufügen. Sie sollten das für uns tun. – tdelaney