如何生成含元组的列表的笛卡尔积并得到列表嵌套结果?
解决笛卡尔积结果的嵌套类型问题
不需要自行实现for循环,只需对product返回的结果做简单转换即可:
itertools.product的默认行为是将每个笛卡尔积项以元组形式返回,而你需要的是列表形式。可以用列表推导式把每个元组转换为列表:
from itertools import product listOfListsOfTuples = [ [(1,2),], [(3,4),(5,6)] ] # 对product返回的每个元组转成列表 got = [list(item) for item in product(*listOfListsOfTuples)] print('got :', got) wanted = [ [(1,2),(3,4)], [(1,2),(5,6)] ] print('wanted:', wanted)
运行后输出会和wanted完全一致:
got : [[(1, 2), (3, 4)], [(1, 2), (5, 6)]] wanted: [[(1, 2), (3, 4)], [(1, 2), (5, 6)]]
这种方式既保留了product的高效性,又满足了你的格式需求,比手动写循环更简洁。
内容的提问来源于stack exchange,提问作者CAB
相关产品推荐
相关产品推荐

