2

我有一个包含大约 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...

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

谢谢

4

3 回答 3

12

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

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

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

于 2012-08-29T19:44:14.793 回答
0
for a in array:
    for b in array:
        print [a, b]
于 2012-08-29T19:44:49.337 回答
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
于 2012-08-29T19:45:19.900 回答