2017-07-25 7 views
0

Je viens de lire la page ici: Get unique combinations of elements from a python listPython (grandes) des listes et des combinaisons uniques: façon la plus intelligente pour les faire

La solution a approuvé les travaux ...

... Mais il ne fonctionne que avec les listes "small" (100 éléments, par exemple).

J'ai une "grande" liste de chaînes (1 million d'éléments) et j'obtiens l'infâme "MemoryError" exception.

Quelle est la meilleure façon d'obtenir des combos uniques sur de très grandes listes?

Merci à l'avance

+2

Vous n'en avez pas. C'est une mauvaise idée. – user2357112

+0

Quelle est la taille des combinaisons? Très rapidement, vous aurez plus de données que vous ne pourriez espérer en traiter – roganjosh

+0

La taille des combinaisons est "2" –

Répondre

0

par inspectorG4dget's comment et linked answer, si un grand nombre de valeurs dans votre liste initiale sont dupliqués, les filtrer à travers un set, puis trouver vos combos.

from itertools import combinations 

elements = [gigantic list] 

uniques = tuple(set(elements)) 
combos = [','.join(str(thing) for thing in combo) for combo in combinations(uniques, 2)]