gpt4 book ai didi

python - 连接两个列表的笛卡尔积的字符串(最好没有 for 循环)

转载 作者:行者123 更新时间:2023-12-02 19:01:41 25 4
gpt4 key购买 nike

使用 for 循环迭代和连接单词以创建多个排列。我的 for 循环可以工作,但我不想使用 for 循环,因为我希望将代码放在一行上,这样我就可以创建一个变量。

我有什么选择?我意识到的基本问题。

这是我想要连接的两个列表:

first = ["Happy", "Sad", "Fun"]
second = ["Game", "Movie"]

期望的输出:

combo = ["Happy Game", "Happy Movie", "Sad Game", "Sad Movie", "Fun Game", "Fun Movie"]

这个 for 循环可以工作,但我希望它在一行上并作为一个变量:

for b in first:
for s in second:
combo = b + ' ' + s
print(combo)

有没有办法不用 for 循环来做到这一点?

最佳答案

您可以使用 itertools.product()map()str.join 来实现此结果,而无需使用 for 循环(甚至不在列表理解中)为:

>>> from itertools import product

>>> first = ["Happy", "Sad", "Fun"]
>>> second = ["Game", "Movie"]

>>> map(' '.join, product(first, second))
['Happy Game', 'Happy Movie', 'Sad Game', 'Sad Movie', 'Fun Game', 'Fun Movie']

此处itertools.product()返回可迭代对象的笛卡尔积。

请参阅以下文档了解更多详细信息:

关于python - 连接两个列表的笛卡尔积的字符串(最好没有 for 循环),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65484461/

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