Python(大型)列表和独特的组合:最聪明的方法

Python(大型)列表和独特的组合:最聪明的方法,python,list,python-3.x,combinations,ram,Python,List,Python 3.x,Combinations,Ram,我刚看了这一页: 该解决方案有效 但它仅适用于“小”列表(例如100个元素) 我有一个“大”字符串列表(100万个元素),我得到了臭名昭著的“MemoryError”异常 在非常大的列表上获得独特组合的最佳方式是什么 提前感谢Per和,如果初始列表中的大量值重复,请先通过集合筛选出它们,然后找到组合 from itertools import combinations elements = [gigantic list] uniques = tuple(set(elements)) comb

我刚看了这一页:

该解决方案有效

它仅适用于“小”列表(例如100个元素)

我有一个“大”字符串列表(100万个元素),我得到了臭名昭著的
“MemoryError”
异常

在非常大的列表上获得独特组合的最佳方式是什么

提前感谢

Per和,如果初始列表中的大量值重复,请先通过
集合
筛选出它们,然后找到组合

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)]

你没有。这是个坏主意。组合的大小是多少?很快,您将拥有比您希望处理的更多的数据。组合的大小为“2”,这取决于1M元素中有多少确实是唯一的,您可以简单地
uniques=tuple(set(elements))
并在
uniques
中获得元素的组合。谢谢,这很有效。