制作一个数组,每个数组包含10个项目

时间:2019-05-02 20:39:06

标签: python python-3.x

我有一个具有X个值的数组。

我正在尝试将每个X包含10个项目的数组组成一个数组。我该如何继续做这样的事情?

我尝试在迭代时使用一个计数,我们只能说我对此一无所知。

我想要类似

# Random list of 20 items
random_array = [1,...20]

# Do cool things here

# Output after doing cool thing
fancy_array = [[1,...10],[11,..20]]

3 个答案:

答案 0 :(得分:0)

Python的itertools模块在​​这里可能会有所帮助。具体来说,grouper食谱

请参阅python docs中的食谱,但我已在此处复制了相关的食谱:

def grouper(iterable, n, fillvalue=None):
    "Collect data into fixed-length chunks or blocks"
    # grouper('ABCDEFG', 3, 'x') --> ABC DEF Gxx"
    args = [iter(iterable)] * n
    return itertools.zip_longest(*args, fillvalue=fillvalue)

答案 1 :(得分:-1)

只需:

fancy_array = [random_array[i:i+10] for i in range(0, len(random_array), 10)]

说明

  • range(0, len(random_array), 10)生成一个范围,其中包含必须划分列表的初始索引的值。由于应为10的10,因此该函数的第三个参数为10(称为步骤)。

  • random_array[i:i+10]将列表在初始位置i和最终位置i+10中切成由函数range生成的每个值。

答案 2 :(得分:-2)

您可以执行以下操作,将列表l分成长度为n的列表,如此处How do you split a list into evenly sized chunks?所述:

def split_list(l, n):
    n = max(1, n)
    return [l[i:i+n] for i in range(0, len(l), n)]