请问在python里 L=[a,b,c,d,e,...] 数组截取怎么按照每三个元素截取?

有一组数组:

L = [a, b, c, d, e, ...]

通过 python 的话,要怎么可以把这段数组重新分成每三个元素一个新的组合,就像:

[a, b, c], [d, e, f], [g, h, i] ....
阅读 5k
3 个回答
L = [a, b, c, d, e, ...]
[L[i:i+3] for i in range(0,len(L),3)]
l = [1,2,3,4,5,6,7,8,9]

def split(list):
  
  #空list用于输出
  new_l = []
  
  #走循环
  for i in range(len(l)):
    #把list的前三个值插入空list
    new_l.append(l[:3])
    #删掉刚刚被插的那三个值
    del l[:3]
    #如果list空了,就停止循环
    if len(l) <= 0:
      break
  #把结果输出
  return new_l
  
a = split(l)

print(a)

>>> [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

定義函數:

def partition_by_n(lst, n):
    groups = []
    for idx in range(len(lst)):
        if idx%3 == 0:
            groups.append(lst[idx:idx+3])
    return groups

使用:

>>> lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
>>> partition_by_n(lst, 3)
[[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11]]

我回答過的問題: Python-QA

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