Python笛卡尔积

5

可能是重复的问题:
在Python中获取一系列列表的笛卡尔乘积

我正在尝试解决一个我无法理解的逻辑问题。假设我有以下数据结构:

letters = (
    ('b','c'),
    ('a','e','ee'),
    ('d','f'),
    ('e','y'),
)

我该如何迭代以获得每个可能的字符串组合:
bade
cade
bede
cede
beede
ceede
bafe
cafe
befe
cefe
beefe
ceefe
bady
cady
bedy
cedy
beedy
ceedy
bafy
cafy
befy
cefy
beefy
ceefy

4
你正在寻找笛卡尔积:http://docs.python.org/library/itertools.html#itertools.product - Felix Kling
@Dustin,我认为你想要的不是笛卡尔积,而是这些字符串的组合。请记住,笛卡尔积是在两个集合A和B之间进行的一种操作,其中AxB = {(a, b): a ∈ A and b ∈ B} - lmiguelvargasf
1个回答

6
我会使用itertools.product()来进行操作:
for l in itertools.product(*letters):
    print ''.join(l)

在编程中,字母前面的 * 有什么用?它是做什么的? - Vineet Kumar Doshi
3
参数解包:*[a, b, c] 表示 a、b、c。 - Hristo Vrigazov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接