首页 > 解决方案 > 从列表中创建一个包含“n”个交替元素的新列表

问题描述

我有一个未知的 x 值。假设我有以下数组:

array = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]

说 x = 2,我想要排列 2 个数组,使其变为:

array2 = [ [0, 2, 4, 6, 8, 10] , [1, 3, 5, 7, 9, 11] ]

如果 x = 3,那么我想要 3 个排列成这样的数组:

array3 = [ [0, 3, 6, 9], [1, 4, 7, 10], [2, 5, 8, 11] ]

谁能帮我解决这个问题?

标签: pythonarraysalgorithmsortingmultidimensional-array

解决方案


这是一个不需要 itertools 的简单解决方案:

def split_array (arr, parts):
    result = []
    for i in range(parts):
        result.append([])
        for j in range(0,len(arr),parts):
            if i+j < len(arr):
                result[i].append(arr[i+j])
    return result

array = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]

print(split_array(array,2))
#[[0, 2, 4, 6, 8, 10], [1, 3, 5, 7, 9, 11]]

print(split_array(array,3))
#[[0, 3, 6, 9], [1, 4, 7, 10], [2, 5, 8, 11]]

推荐阅读