您好我是Python的初学者,我明天要参加考试。我不知道该怎么做这个问题。我知道我必须使用嵌套的for循环但是,我不能使它在语法上工作。这是一个问题,我为任何格式错误道歉。
(list of int, int) -> list of (list of int)
返回第1个元素列表的列表, 其中每个子列表是1st中的下一个num元素。 如果1st的长度不是num的倍数,则最终子列表将具有少于num个元素。
»> make_rows([2. 4, 6, 8, 10, 12],3) #Function call
[[2, 4, 6], [8, 10, 12]] # expected output
答案 0 :(得分:3)
做这样的事情:
def separate(lst, index):
new_list = [lst[i:i+index] for i in range(0, len(lst), index)]
return new_list
它会像这样返回:
>>> print separate([1,2,3,4,5,6],3)
[[1, 2, 3], [4, 5, 6]]
答案 1 :(得分:2)
这是一个非常冗长的解决方案,它不是非常Pythonic,但详细说明了没有List理解或功能风格的步骤。
原始海报提到for-loops,所以我认为他可能想要一种迭代方法。
def make_rows(list_of_int, num_per_row):
new_list = []
count = 0
new_inner_list = []
for n in list_of_int:
count += 1
new_inner_list.append(n)
if (count == num_per_row):
new_list.append(new_inner_list)
new_inner_list = []
count = 0
return new_list