生成包含数组中每个元素组合的数组

时间:2012-08-29 19:42:49

标签: python list combinations

我有一个包含大约1000个元素的数组,我想要做的是从包含每个元素组合的数组生成大小为100的数组。例如,假设我有这个数组:

[A,B,C,D,E,F,G,H,I,J]

将其拆分为大小为2的数组我希望数组看起来像这样:

[A,B]
[A,C]
[A,D]
[A,E]
[A,F]
[A,G]
[A,H]
[A,I]
[A,J]
[B,C]
...etc...

我对如何做到这一点非常困惑,任何建议都会有所帮助,

由于

3 个答案:

答案 0 :(得分:12)

您可以使用combinations模块中的itertools功能:

>>> from itertools import combinations
>>> list(combinations('ABCD', 2))
[('A', 'B'), ('A', 'C'), ('A', 'D'), ('B', 'C'), ('B', 'D'), ('C', 'D')]

第一个参数是输入列表,第二个参数是生成的子序列的长度。

答案 1 :(得分:0)

for a in array:
    for b in array:
        print [a, b]

答案 2 :(得分:0)

你可以试试这个:

lst = [A,B,C,D,E,F,G,H,I,J]
newlst = []
for i in lst:
    for y in lst:
        newlst.append([i,y])
print newlst