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

新手上路,请多包涵

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

所以如果我有一个数组:

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

我将能够得到:

 B = [0,1,2]

C = [3,4,5]

原文由 corymathews 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 647
2 个回答
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)

原文由 Jason Coon 发布,翻译遵循 CC BY-SA 4.0 许可协议

更通用的解决方案(您可以指定所需的零件数量,而不仅仅是“分成两半”):

 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)

原文由 ChristopheD 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题