Disons que j'ai les 4 ensembles suivants Je souhaite trouver toutes les intersections possibles entre l'un de ces ensembles, tels que: P> Set1 and Set4: 1
Set1 and Set2: 4,5
Set2 and Set3: 6,7
Set3 and Set4: 8,9
3 Réponses :
de ici :
# Python3 program for intersection() function set1 = {2, 4, 5, 6} set2 = {4, 6, 7, 8} set3 = {4,6,8} # union of two sets print("set1 intersection set2 : ", set1.intersection(set2)) # union of three sets print("set1 intersection set2 intersection set3 :", set1.intersection(set2,set3))
Vous devez trouver les 2 combinaisons définies (déduites de la sortie souhaitée). Qui peut être réalisé en utilisant [Python 3.Docs]: itTools.
Pour effectuer ce qui précède, les ensembles (Entrée) sont "groupés" dans une liste (itérade).
soulignant également [Python 3.Docs]: classe em> Set strong> ( [irafer] em>) .
Sortie forte>: p>
[cfati@CFATI-5510-0:e:\Work\Dev\StackOverflow\q056551261]> "e:\Work\Dev\VEnvs\py_064_03.07.03_test0\Scripts\python.exe" code.py
Python 3.7.3 (v3.7.3:ef4ec6ed12, Mar 25 2019, 22:22:05) [MSC v.1916 64 bit (AMD64)] on win32
Set1 and Set2 = {4, 5}
Set1 and Set4 = {1}
Set2 and Set3 = {6, 7}
Set3 and Set4 = {8, 9}
Done.
Si vous recherchez uniquement des intersections de deux ensembles, vous pouvez simplement faire des boucles: Si vous recherchez des intersections de n'importe quel nombre de ces ensembles, vous pouvez Utilisez des combinaisons () d'iTerTools pour produire un ensemble d'indices de puissance et effectuez l'intersection pour chaque combinaison: P> from itertools import combinations
for comboSize in range(2,len(sets)):
for combo in combinations(range(len(sets)),comboSize):
intersection = sets[combo[0]]
for i in combo[1:]: intersection = intersection & sets[i]
print(" and ".join(f"Set{i+1}" for i in combo),"=",intersection)
Set1 and Set2 = {4, 5}
Set1 and Set3 = set()
Set1 and Set4 = {1}
Set2 and Set3 = {6, 7}
Set2 and Set4 = set()
Set3 and Set4 = {8, 9}
Set1 and Set2 = {4, 5}
Set1 and Set3 = set()
Set1 and Set4 = {1}
Set2 and Set3 = {6, 7}
Set2 and Set4 = set()
Set3 and Set4 = {8, 9}
Set1 and Set2 and Set3 = set()
Set1 and Set2 and Set4 = set()
Set1 and Set3 and Set4 = set()
Set2 and Set3 and Set4 = set()
C'est parfait. Solution propre, facile à comprendre. Merci!!
Ne regardez-vous que des paires d'ensembles? ou n'importe quel nombre d'entre eux?
@pault n'importe quel nombre de ceux-ci.