将普通列表转换为特定的嵌套列表

时间:2014-05-20 21:15:20

标签: python list python-2.7

我在python中有一个看起来像这样的列表:[a,b,c,d,e,f,g,h,i]。我想将此列表转换为列表列表(嵌套列表)。第二级列表应包含四个最大元素。因此,新列表应如下所示:

[
  [a,b,c,d],
  [e,f,g,h],
  [i],
]

有没有pythonic方法来做到这一点?我将不得不这样做几次,所以如果有人知道这样做而不使用数百个索引,我会很高兴。

1 个答案:

答案 0 :(得分:2)

您可以使用list comprehensionxrangeExplain Python's slice notation

>>> lst = ['a', 'b', 'c', 'd', 'e',' f', 'g',' h', 'i']
>>> n = 4  # Size of sublists
>>> [lst[x:x+n] for x in xrange(0, len(lst), n)]
[['a', 'b', 'c', 'd'], ['e', 'f', 'g', 'h'], ['i']]
>>>