以下代码适用于cart_product([1,2,3], [a,b,c], [v]),它是否也返回重复的笛卡尔积,如果是,如何获得唯一的笛卡尔积?
cart_product([1,2,3], [a,b,c], [v])
import itertools def cart_product(*somelists): for element in itertools.product(*somelists): print element
当我传递包含列表的列表时,这似乎也不起作用 [ [1,2,3],[a,b,c],[v] ]
[ [1,2,3],[a,b,c],[v] ]
return list({element for element in itertools.product(*somelists)})
或根据Paul Draper的评论,我们可以像这样
list(set(itertools.product(*somelists)))
如果您也想维护订单
import itertools def cart_product(somelists): result, tempSet = [], set() for element in itertools.product(*somelists): if element not in tempSet: tempSet.add(element) result.append(element) return result
def cart_product(*somelists):
至
def cart_product(somelists):