Python: cómo hacer una lista de n dimensiones con listas de una dimensión con un bucle

CorePress2024-01-24  14

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)

Su guía para un futuro mejor - libreflare
Su guía para un futuro mejor - libreflare