繁体   English   中英

如何制作以下元组列表的唯一组合

[英]How to make unique combinations of the following list of tuples

在python中,我有一个包含以下元组的列表:

[(Bob, Tom), (GreenWood, Pearson)]

第一个tuple包含名字,第二个tuple包含姓氏。
PS:我给出的列表是一个样本,实际列表随着名称的不同而变化

我想要做的是生成所有可能生成的名称,即

- Bob GreenWood
- Bob Pearson
- Tom GreemWood
- Tom Pearson

我怎样才能用Python或任何其他语言实现它。

我试图首先将Bob in tuple 1并与last names in tuple 2组合并执行类似tuple1[1:]以摆脱Bob。 然后重复(可能的递归?)只有Tom in tuple但我似乎无法围绕算法应该是什么样子。

有帮助吗?

您可以像这样使用itertools.product

from itertools import product
names = [('Bob', 'Tom'), ('GreenWood', 'Pearson')]
for item in product(*names):
    print(item)

产量

('Bob', 'GreenWood')
('Bob', 'Pearson')
('Tom', 'GreenWood')
('Tom', 'Pearson')

如果要将可能的名称打印为字符串,则可以像这样加入结果

print(" ".join(item))

这将产生

Bob GreenWood
Bob Pearson
Tom GreenWood
Tom Pearson

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM