Estoy aprendiendo Python y he estado intentando hacer una lista automática de listas. Por ejemplo:
La siguiente lista, que tengo que dividir para obtener una lista de letras separadas, y luego unirlas nuevamente para hacer dos listas de letras separadas
lists=[['a,b,c,h'],['d,e,f,g']]
print('list length', len(lists))
splited=[]
splited1=lists[0][0].split(',')
print(splited1) #['a', 'b', 'c', 'h']
splited2=lists[1][0].split(',')
print(splited2) #['d', 'e', 'f', 'g']
listcomb=[splited1,splited2]
print(listcomb) #[['a', 'b', 'c', 'h'], ['d', 'e', 'f', 'g']]
Esto es lo que quiero obtener, una lista que tenga 2 listas, pero en el caso de que tenga que obtener más listas dentro de esa lista, quiero hacerlo automático con un bucle for.
Lo intenté, pero no funcionó
listcomb2=zip(splited1,splited2)
print(listcomb2)
sepcomb = list()
print(type(sepcomb))
for x in range(len(lists)):
sep=lists[x][0].split(',')
sepcomb[x]=[sep]
print(sepcomb)
Tengo problemas para dividir las letras y luego unirlas en una nueva lista. Por favor ayuda
------------------------------------
Haz algunos ajustes en tu código. Como podemosVea que la longitud de sepcomb es 0, así que use el método de agregar para evitar este problema. Como sepcomb[x]=[sep] está asignado al índice x pero el índice x no existe, generará un error
cambiar:
for x in range(len(lists)):
sep=lists[x][0].split(',')
sepcomb[x]=[sep]
a
for x in range(len(lists)):
sep=lists[x][0].split(',')
sepcomb.append(sep)
Método-2
sepcomb = list(i[0].split(',') for i in lists)
1
Gracias por tu ayuda, es justo lo que estaba buscando, soy nuevo en python y siempre me confundo al usar .append
-Leandro Borbor
27/03/2021 a las 22:49
------------------------------------
Simplemente puedes hacer lo siguiente:
final=[splinted1]+[splinted2]
O una mejor manera directamente desde la variable listas sería:
final=[value[0].split(',') for value in lists]
------------------------------------
Aquí tienes:
lists = [['a,b,c,h'],['d,e,f,g']]
listcomb = []
for each in lists:
splited = each[0].split(',')
listcomb.append(splited)
print(listcomb)