lst = [[1, 5],
[2, 2]
这是我的嵌套列表,我需要列出其中的要点:
output = [[1, 5, 2, 2]
这是我的尝试,适用于这种情况,但是如果我有一个行长度为6或大于4的示例,则失败
new_lst = []
for x in range(len(lst)):
for y in range(0, len(lst[x]), 2):
new_lst.append([lst[x][y],lst[x][y+1]])
counter_a = 0
counter_b = 1
output = []
while counter_b - 4 <= len(lst):
output.append(new_lst[counter_a] + new_lst[counter_a + 2])
output.append(new_lst[counter_b] + new_lst[counter_b + 2])
counter_a += 4
counter_b += 4
print(output)
答案 0 :(得分:0)
尝试使用:
print([x for i in list(zip(*[[i[:2], i[2:]] for i in lst])) for x in [i[0] + i[1], i[2] + i[3]]])
答案 1 :(得分:0)
这个怎么样?这对于大小为nxm的所有列表都是通用的,其中n和m是偶数。逻辑是在行和列中都以2进行迭代,然后取2x2元素块并将其附加到输出列表中。
lst = [[1, 6, 5, 6],
[2, 5, 6, 8],
[7, 2, 8, 1],
[4, 4, 7, 3]]
output = []
for j in range(0, len(lst), 2):
for i in range(0, len(lst[0]), 2):
output.append([lst[j][i], lst[j][i+1], lst[j+1][i], lst[j+1][i+1]])
output : [[1, 6, 2, 5], [5, 6, 6, 8], [7, 2, 4, 4], [8, 1, 7, 3]]