我有一个很大的清单:
X= [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17]
我想转换成更小的列表:(x1-x5 是用于重新映射 X 中的数据的占位符,对于 X=17,更小的列表的长度才是最重要的)
x1 = [0, 1],
x2 = [0, 1, 2, 3]
x3 = [0, 1, 2, 3]
x4 = [0, 1, 2, 3]
x5 = [0, 1]
预期结果:将大列表中的数据映射到 x1-x5,如下所示:
x1 = [0, 5]
x2 = [1, 6, 10, 13]
x3 = [2, 7, 11, 14]
x4 = [3, 8, 12, 15]
x5 = [4, 9]
我尝试通过将较小的列表附加到一个大列表中并将它们转换为 t 来向后工作,如下所示:
s = [[0, 1], [0, 1, 2, 3], [0, 1, 2, 3], [0, 1, 2, 3], [0, 1]]
t=map(None,*s)
[(0, 0, 0, 0, 0), (1, 1, 1, 1, 1), (None, 2, 2, 2, None), (None, 3, 3, 3, None)]
这就是我卡住的地方。这里的任何帮助将不胜感激。我确信有一种更简单的方法可以做到这一点,而无需附加并将 x 重新映射为 t,并将 t 分解为 x1 -x5。