Lo opuesto al aplanamiento de la lista.Creación de sublistas
Dada una lista y una longitud n devuelve una lista de sublistas de longitud n.
def sublist(lst, n):
sub=[] ; result=[]
for i in lst:
sub+=[i]
if len(sub)==n: result+=[sub] ; sub=[]
if sub: result+=[sub]
return result
Un ejemplo:
Si la lista es:
[1,2,3,4,5,6,7,8]
y N es:
3
de devolución:
[[1, 2, 3], [4, 5, 6], [7, 8]]
¿Hay alguna forma más elocuente/concisa?
un aparte, lo que se prefiere al anexar listas a listas (en el contexto anterior):
list1+=[list2]
O:
list1.append(list2)
Dado que (de acuerdo con 'Programación en Python 3' de Summerfeild) ¿ellos son lo mismo?
Gracias.
Gracias unutbu, tengo que reírme de lo trivial que es usar la lista de comprensión. Subraya mi necesidad de estudiarlos. En cuanto a + = vs append, entiendo la diferencia, notando que comparé list1 + = [list2] con list1.append (list2), not list1 + = list2 y list1.append (list2). Gracias excelente respuesta/discusión. –
@Michael Puckett: Vaya, leí mal la segunda parte de su pregunta. Editando ... – unutbu
Gracias unutbu - append ftw. :) –