从主列表中递归提取子列表

时间:2014-03-30 22:32:48

标签: python-2.7

我有一个列表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]。 如何使其递归?

1 个答案:

答案 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]