Two matching lists from one list

I am a beginner python. I am trying to get two lists of combinations from one list.

For example, I have a list:

c = [1, 2, 3, 4]

I want to get every possible combination, using every four elements to populate two lists. ((2^4)/2)-1Opportunities are possible.

c1 = [1]  c2 = [2, 3, 4]
c1 = [2]  c2 = [1, 3, 4]
c1 = [3]  c2 = [2, 3, 4]
c1 = [4]  c2 = [1, 2, 3]
c1 = [1, 2]  c2 = [3, 4]
c1 = [1, 3]  c2 = [2, 4]
c1 = [1, 4]  c2 = [2, 3]

A function usually works for this kind of task: itertoolsbut I cannot select the number of lists created itertools.combination.

The function allows me to choose how many elements should be in one list.

For example, if I try to execute a function,

print list(itertools.combinations(c, 2))

I can only get the result like this.

[(1,2),(1,3),(1,4),(2,3),(2,4),(3,4)]

I searched pretty hard to find this, but found nothing.

Update

Oh, my bad English is so confusing! I completely changed my example. I wanted to highlight 4 items for 2 lists. Sorry for the confusion!

+4
2

, 10 2. , list(itertools.combinations(c, 2)), 10C2.


, . 45, : 10C1 + 10C2 + 10C3 + 10C4 + 10C5.


, :

for i in range(1, 6):
    for c1 in itertools.combinations(c, i):
            c1 = set(c1)
            c2 = set(c) - c1
            print c1, c2

() CSZ.


, range(1, 3):

[1] [2, 3, 4, 5, 6, 7, 8, 9, 10]
[2] [1, 3, 4, 5, 6, 7, 8, 9, 10]
[3] [1, 2, 4, 5, 6, 7, 8, 9, 10]
[4] [1, 2, 3, 5, 6, 7, 8, 9, 10]
[5] [1, 2, 3, 4, 6, 7, 8, 9, 10]
[6] [1, 2, 3, 4, 5, 7, 8, 9, 10]
[7] [1, 2, 3, 4, 5, 6, 8, 9, 10]
[8] [1, 2, 3, 4, 5, 6, 7, 9, 10]
[9] [1, 2, 3, 4, 5, 6, 7, 8, 10]
[10] [1, 2, 3, 4, 5, 6, 7, 8, 9]
[1, 2] [3, 4, 5, 6, 7, 8, 9, 10]
[1, 3] [2, 4, 5, 6, 7, 8, 9, 10]
[1, 4] [2, 3, 5, 6, 7, 8, 9, 10]
[1, 5] [2, 3, 4, 6, 7, 8, 9, 10]
[1, 6] [2, 3, 4, 5, 7, 8, 9, 10]
[1, 7] [2, 3, 4, 5, 6, 8, 9, 10]
[8, 1] [2, 3, 4, 5, 6, 7, 9, 10]
[1, 9] [2, 3, 4, 5, 6, 7, 8, 10]
[1, 10] [2, 3, 4, 5, 6, 7, 8, 9]
[2, 3] [1, 4, 5, 6, 7, 8, 9, 10]
[2, 4] [1, 3, 5, 6, 7, 8, 9, 10]
[2, 5] [1, 3, 4, 6, 7, 8, 9, 10]
[2, 6] [1, 3, 4, 5, 7, 8, 9, 10]
[2, 7] [1, 3, 4, 5, 6, 8, 9, 10]
[8, 2] [1, 3, 4, 5, 6, 7, 9, 10]
[9, 2] [1, 3, 4, 5, 6, 7, 8, 10]
[2, 10] [1, 3, 4, 5, 6, 7, 8, 9]
[3, 4] [1, 2, 5, 6, 7, 8, 9, 10]
[3, 5] [1, 2, 4, 6, 7, 8, 9, 10]
[3, 6] [1, 2, 4, 5, 7, 8, 9, 10]
[3, 7] [1, 2, 4, 5, 6, 8, 9, 10]
[8, 3] [1, 2, 4, 5, 6, 7, 9, 10]
[9, 3] [1, 2, 4, 5, 6, 7, 8, 10]
[10, 3] [1, 2, 4, 5, 6, 7, 8, 9]
[4, 5] [1, 2, 3, 6, 7, 8, 9, 10]
[4, 6] [1, 2, 3, 5, 7, 8, 9, 10]
[4, 7] [1, 2, 3, 5, 6, 8, 9, 10]
[8, 4] [1, 2, 3, 5, 6, 7, 9, 10]
[9, 4] [1, 2, 3, 5, 6, 7, 8, 10]
[10, 4] [1, 2, 3, 5, 6, 7, 8, 9]
[5, 6] [1, 2, 3, 4, 7, 8, 9, 10]
[5, 7] [1, 2, 3, 4, 6, 8, 9, 10]
[8, 5] [1, 2, 3, 4, 6, 7, 9, 10]
[9, 5] [1, 2, 3, 4, 6, 7, 8, 10]
[10, 5] [1, 2, 3, 4, 6, 7, 8, 9]
[6, 7] [1, 2, 3, 4, 5, 8, 9, 10]
[8, 6] [1, 2, 3, 4, 5, 7, 9, 10]
[9, 6] [1, 2, 3, 4, 5, 7, 8, 10]
[10, 6] [1, 2, 3, 4, 5, 7, 8, 9]
[8, 7] [1, 2, 3, 4, 5, 6, 9, 10]
[9, 7] [1, 2, 3, 4, 5, 6, 8, 10]
[10, 7] [1, 2, 3, 4, 5, 6, 8, 9]
[8, 9] [1, 2, 3, 4, 5, 6, 7, 10]
[8, 10] [1, 2, 3, 4, 5, 6, 7, 9]
[9, 10] [1, 2, 3, 4, 5, 6, 7, 8]
+3
l = [1,2,3,4, 5,  6, 7, 8]

print [[l[:i], l[i:]] for i in range(1, len(l))]

. .

print [l[i:i+n] for i in range(len(l)) for n in range(1, len(l)-i+1)]

itertools.combinations
+2

Source: https://habr.com/ru/post/1613297/


All Articles