高级迭代器切片:是否有办法从给定索引切片到另一个给定索引,并为每个元素创建一个单独的列表?

时间:2019-05-20 08:43:42

标签: python python-3.x

因此,我们给出了两个列表。

groups= `[[0,1],[2],[3,4,5],[6,7,8,9]]

A= [[[0, 1, 6, 7, 8, 9], [0, 1, 6, 7, 8, 9]], [[2]], [[3, 4, 5, 6, 7, 8, 9], [3, 4, 5, 6, 7, 8, 9], [3, 4, 5, 6, 7, 8, 9]], [[0, 1, 3, 4, 5, 6, 8, 9], [0, 1, 3, 4, 5, 7, 8, 9], [0, 1, 3, 4, 5, 6, 7, 8, 9], [0, 1, 3, 4, 5, 6, 7, 8, 9]]]

我们如何将列表A中的0和1替换为1、3和4的0,2和将2和6,7,8,9替换为3(即它们在组中的对应索引)。 输出:     A = [[[0,0,3,3,3,3],[0,0,3,3,3,3]],[[1]],[[2,2,2,3,3 ,3、3],[2、2、2、3、3、3、3],[2、2、2、3、3、3、3]],[[0、0、2、2、2 ,3、3、3],[0、0、2、2、2、3、3、3],[0、0、2、2、2、3、3、3、3],[0、0 ,2、2、2、3、3、3、3]]]

我们如何处理这样的问题?

1 个答案:

答案 0 :(得分:2)

一个简单的理解就可以解决问题:

a, b, c, d = [[l[i] for i in g] for g in groups]

这里有live example