Python отображает оставшиеся значения после деления матрицы

1
i = [1,2,3,4,5,6,7,8,9,10]
def ndiv(l,n):
     return [l[s:e] for s, e in zip(range(0,len(l)+1,n),xrange(n,len(l)+1,n))]
for i in xrange(1,15,1):
    print "CLUSTER {}".format((ndiv(l,i)))

#print 
CLUSTER [[1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12], [13], [14], [15], [16], [17]]
CLUSTER [[1, 2], [3, 4], [5, 6], [7, 8], [9, 10], [11, 12], [13, 14], [15, 16]]
CLUSTER [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12], [13, 14, 15]]
CLUSTER [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16]]
CLUSTER [[1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15]]
CLUSTER [[1, 2, 3, 4, 5, 6], [7, 8, 9, 10, 11, 12]]
CLUSTER [[1, 2, 3, 4, 5, 6, 7], [8, 9, 10, 11, 12, 13, 14]]
CLUSTER [[1, 2, 3, 4, 5, 6, 7, 8], [9, 10, 11, 12, 13, 14, 15, 16]]
CLUSTER [[1, 2, 3, 4, 5, 6, 7, 8, 9]]

Кодирование до сих пор. После деления оставшиеся значения не отображаются опущенными. Но я хочу, чтобы цены показывались после их разделения (EX.if разделил "3" → до [[1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15]]/после [[1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15], [16], [17]). Как я могу разделить, а затем показать оставшиеся номера один за другим?

Теги:
python-2.7

1 ответ

1
Лучший ответ

Вы можете вычислить 2 списка, один из которых разделяет, содержит партии n, а другой - отображает оставшиеся элементы в один список элементов и, наконец, объединяет их вместе

>>> l = list(xrange(1,18))
>>> def ndiv(l,n):
...     return [l[i:i+n] for i in xrange(0,len(l)//n*n, n)] + [[e] for e in l[len(l)//n*n:]]
... 
>>> ndiv(l, 5)
[[1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15], [16], [17]]

Ещё вопросы

Сообщество Overcoder
Наверх
Меню