我试图将一个列表中的元素与列表列表中的每个元素进行比较。
hsdr_machine_one=['P#1', 'P#2', ...]
hsdr_machine_two=[...]
hsdr_machine_three=[...]
hsff_machine_four=['P#4', 'P#5', ...]
hsff_machine_five=['P#6', ...]
hsff_machine_six=[...]
hsdr_machines_list=[hsdr_machine_one, hsdr_machine_two, hsdr_machine_three]
hsff_machines_list=[hsff_machine_four, hsff_machine_five, hsff_machine_six]
part_number_combinations = []
for part_number in itertools.product(*hsdr_machines_list):
part_number_combinations = [part_number[0]] + [part_number[1]]
print part_number_combinations
我知道这段代码不会让我在那里,它只是我在itertools
中搞砸的东西。我之前使用product(hsdr_machine_one, hsff_machine_four)
成功地比较了两台机器。但现在我想尝试一次性完成。
输出将是:
P#1, P#4
P#1, P#5
P#1, P#6
P#2, P#4
P#2, P#5 ...
然后它将继续比较hsdr_machine_two
与hsff_machine_four
,five
和six
。
答案 0 :(得分:1)
展平嵌套列表,然后查看元素的笛卡尔积。
hsdr_flat = sum(hsdr_machines_list, [])
hsff_flat = sum(hsff_machines_list, [])
for hsdr, hsff in itertools.product(hsdr_flat, hsff_flat):
print hsdr, hsff
答案 1 :(得分:1)
您可以使用itertools.products
创建子列表组合,然后一次使用两个子列表中的项目来获取对的产品:
for hsdr, hsff in itertools.product(hsdr_machines_list, hsff_machines_list):
for pt1, pt2 in itertools.product(hsdr, hsff):
print pt1, pt2