的Python(大)名单和独特的组合:做他们
问题描述:
最聪明的办法,我刚才读的页面在这里:Get unique combinations of elements from a python list的Python(大)名单和独特的组合:做他们
解决方案获批准的工程...
... 但它只能与“小”列表(例如100个元素)。
我有一个“大”字符串列表(100万元),我得到了臭名昭着的"MemoryError"
异常。
在超大型列表上获得独特组合的最佳方式是什么?
在此先感谢
答
每inspectorG4dget's comment和linked answer,如果大量的初始列表值是重复的,过滤出来通过set
第一,然后找到你的连击。
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)]
你不知道。这是一个坏主意。 – user2357112
组合的大小是多少?很快你就会得到比你希望处理的数据更多的数据 – roganjosh
组合的大小是“2” –