嵌套列表的两个切片



有一个嵌套列表[[1,1],[2,2],[3,3],[4,4]。

我想通过三片迭代列表。我属于[0,3],j = i-1,k = i-2

例如:

     slice 1: [3, 3], [4, 4]
     slice 2: [2, 2], [3, 3]
     slice 3: [1, 1], [2, 2]

我该怎么做?

您可以尝试以下方法:

s = [[1, 1], [2, 2], [3, 3], [4,4]]
new_s = {"slice {}".format(len(s)-i-1):[s[i], s[i+1]] for i in range(len(s)-1)}

输出:

{'slice 1': [[3, 3], [4, 4]], 'slice 3': [[1, 1], [2, 2]], 'slice 2': [[2, 2], [3, 3]]}

使用zip((您可以创建该输出,例如:

代码:

new_data = list(zip(reversed(data[:-1]), reversed(data)))

测试代码:

data = [[1, 1], [2, 2], [3, 3], [4, 4]]
new_data = list(zip(reversed(data[:-1]), reversed(data)))
print(new_data)

,如果您想从中判断:

new_data = {'slice_{}'.format(i): d for i, d in
            enumerate(zip(reversed(data[:-1]), reversed(data)), 1)}
print(new_data)

结果:

[([3, 3], [4, 4]), ([2, 2], [3, 3]), ([1, 1], [2, 2])]
{'slice_1': ([3, 3], [4, 4]), 'slice_2': ([2, 2], [3, 3]), 'slice_3': ([1, 1], [2, 2])}

最新更新