# Python如何将列表分为给定长度的子列表？

2021年4月5日16:00:03 发表评论 599 次浏览

Input : Input = [1, 2, 3, 4, 5, 6, 7]
length_to_split = [2, 1, 3, 1]

Output: [[1, 2], [3], [4, 5, 6], [7]]

# Python code to split a list
# into sublists of given length.

from itertools import islice

# Input list initialization
Input = [ 1 , 2 , 3 , 4 , 5 , 6 , 7 ]

# list of length in which we have to split
length_to_split = [ 2 , 1 , 3 , 1 ]

# Using islice
Inputt = iter ( Input )
Output = [ list (islice(Inputt, elem))
for elem in length_to_split]

# Printing Output
print ( "Initial list is:" , Input )
print ( "Split length list: " , length_to_split)
print ( "List after splitting" , Output)

Initial list is: [1, 2, 3, 4, 5, 6, 7]
Split length list:  [2, 1, 3, 1]
List after splitting [[1, 2], [3], [4, 5, 6], [7]]

# Python code to split a list into
# sublists of given length.
from itertools import accumulate

# Input list initialization
Input = [ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 ]

# list of length in which we have to split
length_to_split = [ 2 , 2 , 3 , 3 ]

# Using islice
Output = [ Input [x - y: x] for x, y in zip (
accumulate(length_to_split), length_to_split)]

# Printing Output
print ( "Initial list is:" , Input )
print ( "Split length list: " , length_to_split)
print ( "List after splitting" , Output)

Initial list is: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Split length list:  [2, 2, 3, 3]
List after splitting [[1, 2], [3, 4], [5, 6, 7], [8, 9, 10]]