0
我有一个列表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]
。 如何使其递归?
我有一个列表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]
。 如何使其递归?
[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]
感谢。还有一件事,如果我想得到'[3,4,7,8,11,12]'? – Ibe
在第一个和第三个中更改'< 2' to '> = 2','i%4 == 0'更改为'i%4 == 2'。 –
非常感谢。 – Ibe