【发布时间】:2016-05-03 13:38:43
【问题描述】:
我一直在尝试理解 senderle 的对这个问题的回答:- Cross product of sets using recursion
我发现处理 for 循环然后将它们转换为列表推导更简单。我正在努力解决这个问题,因为它有两个列表推导,所以我认为我们需要嵌套循环。 s函数返回两个列表的笛卡尔积。
def product(*seqs):
if not seqs:
return [[]]
else:
return [[x] + p for x in seqs[0] for p in product(*seqs[1:])]
# working example:
x = [1, 2], [3, 4]
print(product(*x))
# gives: [[1, 3], [1, 4], [2, 3], [2, 4]]
如何重写product() 函数来扩展列表理解?
【问题讨论】:
标签: python list python-3.x recursion list-comprehension