从更大列表中的元素创建列表

时间:2014-03-24 06:18:45

标签: list python-2.7

我有一个列表,其大小是16的倍数。我想要做的是浏览列表并获取16个元素并从这些值创建一个列表,然后将这些值存储在某处。之后,我可以忽略它们或从列表中删除它们,并继续此过程,直到较大的列表为空。我试图做的是浏览列表,并保留一些计数器来跟踪已附加到列表中的元素数量。但是,我被困在那里。关于如何完成我想要做的任何想法?任何想法都将不胜感激。

lst = [[1, 4, 0], [2, 4, 0], [3, 4, 0], [4, 4, 0], [1, 3, 0], [2, 3, 0], [3, 3, 0], [4, 3, 0], [1, 2, 0], [2, 2, 0], [3, 2, 0], [4, 2, 0], [1, 1, 0], [2, 1, 0], [3, 1, 0], [4, 1, 0],[1, 4, 0], [2, 4, 0], [3, 4, 0], [4, 4, 0], [1, 3, 0], [2, 3, 0], [3, 3, 0], [4, 3, 0], [1, 2, 0], [2, 2, 0], [3, 2, 0], [4, 2, 0], [1, 1, 0], [2, 1, 0], [3, 1, 0], [4, 1, 0]]

2 个答案:

答案 0 :(得分:0)

如果我理解正确,你可以从大小为n的列表开始,其中n%16 == 0.你想以n / 16大小为16的列表结束。你可以通过double for循环轻松完成这个。外循环应该进行n / 16次迭代。内循环应该进行16次迭代。外部循环在每次迭代时创建一个新列表。内部循环从原始列表中获取元素并将它们附加到新创建的列表中。

答案 1 :(得分:0)

感谢您抽出宝贵时间回答我的问题。点击右侧的随机链接后,我来回答这完全是我需要发生的事情。 这是我的问题的解决方案:

[input[i:i+n] for i in range(0, len(input), n)]

上面的解决方案通过输入并创建一个大小为n的列表。