在 python 中与重复的组合,其中顺序很重要[重复]

问题描述 投票:0回答:1

来自 python 的文档:https://docs.python.org/2/library/itertools.html#itertools.combinations

查看 combinations_with_replacement:“# combinations_with_replacement('ABC', 2) --> AA AB AC BB BC CC”

我想使用相同的功能,并生成“BA”、“CA”和“CB”。

python combinations python-itertools combinatorics cartesian-product
1个回答
11
投票

itertools.product
绝对是您在这里寻找的方法。正如文档所述,它实际上是一个紧凑的 for 循环;
product(A,B)
等同于
((x, y) for x in A for y in B)

product
将返回它可以返回的元素的每个组合,特定于订单,所以
product('ABC', 'DEF', 'GHI')
会让你
ADG, ADH, ADI, AEG [...] CFI
。如果你想包括重复,你设置可选的
repeat
变量。
product(A, repeat=4)
等同于
product(A,A,A,A)
。同样,
product(A, B, repeat=3)
product(A,B,A,B,A,B)
相同。

简而言之:要获得您想要的结果,请致电

itertools.product('ABC', repeat=2)
。这会让你得到元组
AA, AB, AC, BA, BB, BC, CA, CB, CC
,按顺序。

© www.soinside.com 2019 - 2024. All rights reserved.