在Python中创建列表的所有可能组合

2024-09-30 02:16:47 发布

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

有人知道如何使用Python3找出给定列表的所有可能组合吗?你知道吗

我的列表如下所示:

usersArray = ["John", "Mike", "Robert", "Tom"]
foodsArray = ["hamburger", "cake", "cheese"]

我想要这样的东西:

Johnhamburger
Mikehamburger
Roberthamburger
Tomhamburger

Johncake
Mikecake
Robertcake
Tomcake

Johncheese
Mikecheese
Robertcheese
Tomcheese

#and then the opposite

hamburgerJohn
hamburgerMike
hamburgerRobert
hamburgerTom

cakeJohn
...
...
...

cheeseJohn
...
...
...

我能用itertools吗? 谢谢您!你知道吗


Tags: 列表johnrobertpython3mikecaketomcheese
2条回答

Python溶液:

您可以在list-comprehensionstringconcatenation中使用nestedfor-loops来执行此操作:

[u + f for u in usersArray for f in foodsArray]

它给出:

['Johnhamburger', 'Johncake', 'Johncheese', 'Mikehamburger', 'Mikecake', 'Mikecheese', 'Roberthamburger', 'Robertcake', 'Robertcheese', 'Tomhamburger', 'Tomcake', 'Tomcheese']

[f + u for u in usersArray for f in foodsArray]

它给出:

['hamburgerJohn', 'cakeJohn', 'cheeseJohn', 'hamburgerMike', 'cakeMike', 'cheeseMike', 'hamburgerRobert', 'cakeRobert', 'cheeseRobert', 'hamburgerTom', 'cakeTom', 'cheeseTom']

这就是itertools产品的两个用途:

for food, user in itertools.product(foodsArray, usersArray):
    print(user+food)

for food, user in itertools.product(foodsArray, usersArray):
    print(food+user)

相关问题 更多 >

    热门问题