F
fidtz
The code below works fine, but it is less than nice to look at and
somewhat long winded. Is there a better way to do the docstring task?
This is the first working version, and can proabably be "compacted" a
bit (list comprehensions etc) but I am looking for a better basic
approach. Any help much appreciated
from itertools import islice
def chopupmoves(movelist):
'''creates a list of 3 lists from one list, that should all have
(length of movelist)/3 length, with any remainder getting added to the
third list'''
outputlist = [[],[],[]]
parlen = int(len(movelist)/3)
if parlen < 3:
parlen = 3
stoplist=[0];exit = 0
while exit < len(movelist):
stoplist.append(exit+parlen)
exit = exit + parlen
while len(stoplist) > 4:
stoplist.pop(len(stoplist)-1)
stoplist[-1]=len(movelist)
for x in range(len(stoplist)-1):
for i in islice(movelist,stoplist[x],stoplist[x+1],1):
outputlist[x].append(i)
return outputlist
movelist = [1,2,3,4,5,6,7,8,9,10,11]
print chopupmoves(movelist)
somewhat long winded. Is there a better way to do the docstring task?
This is the first working version, and can proabably be "compacted" a
bit (list comprehensions etc) but I am looking for a better basic
approach. Any help much appreciated
from itertools import islice
def chopupmoves(movelist):
'''creates a list of 3 lists from one list, that should all have
(length of movelist)/3 length, with any remainder getting added to the
third list'''
outputlist = [[],[],[]]
parlen = int(len(movelist)/3)
if parlen < 3:
parlen = 3
stoplist=[0];exit = 0
while exit < len(movelist):
stoplist.append(exit+parlen)
exit = exit + parlen
while len(stoplist) > 4:
stoplist.pop(len(stoplist)-1)
stoplist[-1]=len(movelist)
for x in range(len(stoplist)-1):
for i in islice(movelist,stoplist[x],stoplist[x+1],1):
outputlist[x].append(i)
return outputlist
movelist = [1,2,3,4,5,6,7,8,9,10,11]
print chopupmoves(movelist)