如何在不使用内部元素的情况下将列表拆分为x个列表?

2024-03-28 23:20:41 发布

您现在位置:Python中文网/ 问答频道 /正文

做一个作业,其中一个部分要求我把列表分成“x”个列表块,但我不一定要用列表中的元素来做,因为我看到了很多这样做的例子。例如,给定列表[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],我想把这个列表分成3个偶数部分([[1,2,3,4,5],[6,7,8,9,10],[11,12,14,15]])。你知道吗

我在这里看到的大多数例子都倾向于用“x”来划分整个列表,而不是把它分成“x”组,最后给我一个类似[[1,2,3],[4,5,6],[7,8,9],[10,11,12],[13,14,15]]的列表。你知道吗

编辑:

在这个问题的第一部分,我已经找到了如何获得所需的输出,但是在进一步研究我的作业时,我意识到需要生成的列表必须以lst的增量递增,而不是必须输入一个值,在这个范围内生成一个列表。例如,如果我想打印一个分组列表,比如[[1,2,3,4,5],[6,7,8,9,10],[11,12,13,14,15]],我不想把lst设置为lst = list(range(1,lst+1)),然后当我给我的函数赋值时,我想用5代替15来得到相同的结果。你知道吗

def test(num, lst, start = 1):
    lst = list(range(start,lst+1))
    avg = len(lst) / float(num)
    out = []
    last = 0.0

    while last < len(lst):
        out.append(lst[int(last):int(last + avg)])
        last += avg

    return out

print (test(3,15))

Tags: test元素列表len作业rangeoutstart
1条回答
网友
1楼 · 发布于 2024-03-28 23:20:41

Most of the examples that I have seen on here tend to divide the whole list by "x" rather than making "x" groups of it which end up giving me a list like [[1,2,3],[4,5,6],[7,8,9],[10,11,12],[13,14,15]].

在您的示例中,一个由15个元素组成的列表被分成3个块,组成5个组。可惜你不想要五组而不是三组,你早就搞定了!你知道吗

如果有一种方法可以将15个元素分成不同大小的块,这样就有3个组=)

提示:

3 x 5 = 15
5 x 3 = 15

太长了,读不下去了,如果你认为把一个列表分成大小为“x”的组不同于做“Y”组,那么你应该花一分钟时间重新考虑。你知道吗

相关问题 更多 >