Ibe
Ibe

Reputation: 6035

Extract sub-lists recursively from main list

I have a list a = [1,2,3,4,5,6,7,8,9,10,11,12] and I want to get first 2 elements repeatedly from every 4 elements. So the result will look like this:

b1 = [1,2]
b2 = [5,6]
b3 = [9,10]

I tried c = [a[x:x+4] for x in range(0,len(a),4)] but it only gives [1,2]. How to make it recursive?

Upvotes: 0

Views: 46

Answers (1)

Robert Krzyzanowski
Robert Krzyzanowski

Reputation: 9344

[a[i] for i in xrange(0, len(a)) if i % 4 < 2 ]
# [1, 2, 5, 6, 9, 10]

If you wish to make an array of arrays, use

[[a[i], a[i + 1]] for i in xrange(0, len(a)) if i % 4 == 0]
# [[1, 2], [5, 6], [9, 10]]

If wish to assign the result to three variable, use

b1, b2, b3 = [[a[i], a[i + 1]] for i in xrange(0, len(a)) if i % 4 == 0]
# b1 = [1, 2], b2 = [5, 6], b3 = [9, 10]

Upvotes: 2

Related Questions