将列表中的元素与listofList中的每个元素进行比较

2024-03-28 20:43:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图将一个列表中的一个元素与列表列表中的每个元素进行比较。在

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)成功地比较了两台机器。但现在我想试着一次完成。在

输出将是:

^{pr2}$

然后再比较hsdr_machine_twohsff_machine_fourfive,和{}。在


Tags: 元素number列表machineonelistthreefour
2条回答

您可以使用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

展开嵌套列表,然后查看元素的笛卡尔积。在

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

相关问题 更多 >