Reputation: 6035
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
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