python 中把一个列表(list)平均分成n块
# 将一个list尽量均分,前面可以分n个时则每份为n个,直到分不下为止,不限制len(list)
def EveryStrandIsN(listTemp, n):
for i in range(0, len(listTemp), n):
yield listTemp[i:i + n]
# 将一个list尽量均分成n份,限制len(list)==n,份数大于原list内元素个数则分配空list[]
def divideIntoNstrand(listTemp, n):
twoList = [ [] for i in range(n)]
for i,e in enumerate(listTemp):
twoList[i%n].append(e)
return twoList
if __name__ == '__main__':
listTemp = [1,2,3,4,5,6,7,8,9]
n = 4
temp = EveryStrandIsN(listTemp, n)
temp1 = divideIntoNstrand(listTemp, n)
print("前面保证每份{}个".format(n))
for i in temp:
print(i)
print("保证{}份".format(n))
for i in temp1:
print(i)