gpt4 book ai didi

python - 如何从n个列表中形成所有可能的组合

转载 作者:行者123 更新时间:2023-12-02 07:32:48 27 4
gpt4 key购买 nike

这个问题很难用标题来表达,所以需要一个例子:

我有 3 个列表:

L1 = ["Eagle", "Panther"]

L2 = ["Warrior", "Talon", "Machete"]

L3 = ["Feather", "Raptor", "Hunter", "Piranha"]

列表的大小可以不同。

我想形成所有子集{[a,b,c]},使得a位于L1L2 中的 bL3 中的 c

示例如下:

{["鹰", "战士", "Feather "], ["鹰", "战士", "猛禽"], ["黑豹", "弯刀", "Feather "].. .}

["Eagle", "Warrior", "Feather"]["Eagle", "Feather", "Warrior"] 相同,因此顺序没关系。

我只需要所有子集。

我看到很多帖子,我可以在其中形成列表的子集,但在这里找不到我要找的内容。我显然可以循环并执行此操作,但想知道是否有 itertools 解决方案

最佳答案

itertools.product用于此。

import itertools

L1 = ["Eagle", "Panther"]

L2 = ["Warrior", "Talon", "Machete"]

L3 = ["Feather", "Raptor", "Hunter", "Piranha"]

for x in itertools.product(L1,L2,L3):
print(x)

输出

('Eagle', 'Warrior', 'Feather')
('Eagle', 'Warrior', 'Raptor')
('Eagle', 'Warrior', 'Hunter')
('Eagle', 'Warrior', 'Piranha')
('Eagle', 'Talon', 'Feather')
('Eagle', 'Talon', 'Raptor')
('Eagle', 'Talon', 'Hunter')
('Eagle', 'Talon', 'Piranha')
('Eagle', 'Machete', 'Feather')
('Eagle', 'Machete', 'Raptor')
('Eagle', 'Machete', 'Hunter')
('Eagle', 'Machete', 'Piranha')
('Panther', 'Warrior', 'Feather')
('Panther', 'Warrior', 'Raptor')
('Panther', 'Warrior', 'Hunter')
('Panther', 'Warrior', 'Piranha')
('Panther', 'Talon', 'Feather')
('Panther', 'Talon', 'Raptor')
('Panther', 'Talon', 'Hunter')
('Panther', 'Talon', 'Piranha')
('Panther', 'Machete', 'Feather')
('Panther', 'Machete', 'Raptor')
('Panther', 'Machete', 'Hunter')
('Panther', 'Machete', 'Piranha')

关于python - 如何从n个列表中形成所有可能的组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58979184/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com