Disons que j'ai ces ensembles numériquesTrouver des groupes de sous-ensembles numériques
a = {1, 2, 3}
b = {2, 3, 4}
c = {1, 5}
Je veux trouver tous les groupes numériques distincts des ensembles. Le résultat serait
{1}, {2, 3}, {4}, {5}
Mon approche naïve, qui ne fonctionne pas, est quelque chose comme ceci:
data = [{1, 2, 3}, {2, 3, 4}, {1, 5}]
for i in range(1, 5):
s = set.intersection(*[x for x in data if i in x])
print(s)
qui retourne
set([1])
set([2, 3])
set([2, 3])
set([2, 3, 4])
qui pourrait facilement être dédupliquées mais ne donne pas le résultat attendu.
Comment puis-je obtenir uniquement les regroupements de nombres qui existent dans le sous-ensemble d'ensembles?
Vous n'êtes pas sûr que votre algorithme fonctionne. Vous voulez probablement passer en revue les 2^3-1 sous-ensembles de [0,1,2] et regarder quels sont les éléments qui apparaissent dans chaque sous-ensemble et non dans le complément. – WNG
Pouvez-vous clarifier les «regroupements de nombres qui existent dans le sous-ensemble de définit un peu plus loin? Quelle est votre idée du «groupement numérique distinct»? Parce que '{1}', '{4}' et '{5}' ne sont certainement pas des groupes d'aucune sorte. – zwer