我有一个列表a = [1,2,3,4,5,6,7,8,9,10,11,12]
,我想从每4个元素中重复获得前2个元素。所以结果将如下所示:
b1 = [1,2]
b2 = [5,6]
b3 = [9,10]
我尝试c = [a[x:x+4] for x in range(0,len(a),4)]
,但它只提供[1,2]
。
如何使其递归?
答案 0 :(得分:2)
[a[i] for i in xrange(0, len(a)) if i % 4 < 2 ]
# [1, 2, 5, 6, 9, 10]
如果您想制作数组数组,请使用
[[a[i], a[i + 1]] for i in xrange(0, len(a)) if i % 4 == 0]
# [[1, 2], [5, 6], [9, 10]]
如果希望将结果分配给三个变量,请使用
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]