Python置换

2024-04-19 02:25:12 发布

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

如何在python中完成以下任务:

first = ['John', 'David', 'Sarah']
last = ['Smith', 'Jones']

combined = ['John Smith', 'John Jones', 'David Smith', 'David Jones', 'Sarah Smith', 'Sarah Jones']

有没有一种方法可以组合所有的排列?在


Tags: 方法johnfirstlastdavidsmithjonescombined
3条回答

不确定是否有更优雅的解决方案,但这应该有效:

[x + " " + y for x in first for y in last]

^{}

import itertools
combined = [f + ' ' + l for f, l in itertools.product(first, last)]

来自itertoolsproduct就可以了。

product(first, last)

将返回一个包含firstlast的所有可能组合的生成器。之后,您需要做的就是连接名字和姓氏。您可以在一个表达式中执行此操作:

^{pr2}$

也可以使用字符串连接来完成此操作:

^{3}$

不过,与解释器中的连接一样,这种方法速度较慢。由于这段代码是在C语言中执行的,因此建议始终使用"".join()方法

相关问题 更多 >