将列表拆分为较小的列表(拆分为一半)

2024-04-26 00:03:08 发布

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

我正在寻找一种方法来轻松地将python列表分成两半。

如果我有一个数组:

A = [0,1,2,3,4,5]

我可以得到:

B = [0,1,2]

C = [3,4,5]

Tags: 方法列表数组
3条回答

一个更通用的解决方案(您可以指定所需的部件数量,而不仅仅是一分为二):

编辑:更新了post以处理奇数列表长度

EDIT2:根据Brians信息性评论再次更新帖子

def split_list(alist, wanted_parts=1):
    length = len(alist)
    return [ alist[i*length // wanted_parts: (i+1)*length // wanted_parts] 
             for i in range(wanted_parts) ]

A = [0,1,2,3,4,5,6,7,8,9]

print split_list(A, wanted_parts=1)
print split_list(A, wanted_parts=2)
print split_list(A, wanted_parts=8)
f = lambda A, n=3: [A[i:i+n] for i in range(0, len(A), n)]
f(A)

n-结果数组的预定义长度

A = [1,2,3,4,5,6]
B = A[:len(A)//2]
C = A[len(A)//2:]

如果需要函数:

def split_list(a_list):
    half = len(a_list)//2
    return a_list[:half], a_list[half:]

A = [1,2,3,4,5,6]
B, C = split_list(A)

相关问题 更多 >