将列表拆分为较小的列表,其中每个较小的列表随后通过使用列表推导而变小

Nev*_*res 1 python split list-comprehension python-2.7

我有一个列表,我想分成一个列表列表,这样新列表中的每个列表都是一个较小的元素.

例如:

exampleList = [1,2,3,4,5,6,7,8,9,10]

newList = [[1,2,3,4,5,6,7,8,9,10],
       [2,3,4,5,6,7,8,9,10],
       [3,4,5,6,7,8,9,10],
       [4,5,6,7,8,9,10],
       [5,6,7,8,9,10],
       [6,7,8,9,10],
       [7,8,9,10],
       [8,9,10],
       [9,10]]
Run Code Online (Sandbox Code Playgroud)

有没有一种简单的方法通过列表理解来做到这一点?

tim*_*geb 5

您可以使用切片和列表理解.

>>> [exampleList[i:] for i in range(len(exampleList) - 1)] 
[[1, 2, 3, 4, 5, 6, 7, 8, 9, 10], [2, 3, 4, 5, 6, 7, 8, 9, 10], [3, 4, 5, 6, 7, 8, 9, 10], [4, 5, 6, 7, 8, 9, 10], [5, 6, 7, 8, 9, 10], [6, 7, 8, 9, 10], [7, 8, 9, 10], [8, 9, 10], [9, 10]]
Run Code Online (Sandbox Code Playgroud)

exampleList[i:]将从当前索引的所有元素i到结尾.如果要包含[10]在结果中,请忽略- 1来自的调用len.