-2

I have list like this List = ['4', '4', '1', '2', '3', '2', '4', '1'] and i need to transform in list like List = [["4","4"],['1','2'],['3','2'],['4','1']].

  • Try searching for similar questions before asking your own: https://stackoverflow.com/questions/2130016/splitting-a-list-into-n-parts-of-approximately-equal-length – otocan Feb 12 '20 at 12:53
  • Try something first before posting your question as an assignment to the reader. – Jongware Feb 12 '20 at 12:55

2 Answers2

1

itertools provides a recipe, which can split an iterable into fixed-size blocks:

def grouper(iterable, n, fillvalue=None):
    "Collect data into fixed-length chunks or blocks"
    # grouper('ABCDEFG', 3, 'x') --> ABC DEF Gxx"
    args = [iter(iterable)] * n
    return zip_longest(*args, fillvalue=fillvalue)
Masklinn
  • 34,759
  • 3
  • 38
  • 57
0

Ugly but it works...

def eqsplit(aList,partSize):
        return [aList[partSize*n:partSize*(n+1)] for n in range(0,int(len(aList)/partSize)+(1 if len(aList)%partSize else 0))]
kpie
  • 9,588
  • 5
  • 28
  • 50