我有一个具有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]]
答案 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)]