
Listas y Archivos consulta
Publicado por anonymous (38 intervenciones) el 11/07/2021 02:58:22
Hola, estoy haciendo un ejercicio y se me presento un problema, la idea de este código es abrir un archivo texto, sacar la información que este tiene y crear listas, en formato baldosas, en la que cada baldosa puede tener N caminos, logre crear las listas de los caminos con cada lista de las baldosas al interior pero me lo piden en un formato en específico, que es este Camino(['S', 'O'], "verde"), además necesito sacar la cantidad de caminos del txt pero tampoco se como sacar todos, puesto que pueden estar en distintas posiciones, el archivo txt puede ser como los siguientes:
Ejemplo 1 de lo que puede contener el archivo:
2
3
F O azul
E S rojo
F N azul
2
O S azul
E N azul
Ejemplo 2 de lo que puede contener el archivo:
4
2
N O azul
E S azul
3
F O rojo
E F azul
N S azul
2
N O rojo
E S azul
3
N S azul
E F rojo
F O rojo
Explicacion archivo:
La primera línea es un número entero N, correspondiente al número de baldosas que serán creadas.
En las líneas que siguen, recibirás la información de las N baldosas. Para cada una de ellas, la primera línea será un segundo número entero M, indicando el número de caminos pertenecientes a esa baldosa.
La información de cada camino será entregada en una sola línea, separada por espacios:
Si alguien me pudiese ayudar y explicar como lo podría realizar se lo agradeceria un millon
Ejemplo 1 de lo que puede contener el archivo:
2
3
F O azul
E S rojo
F N azul
2
O S azul
E N azul
Ejemplo 2 de lo que puede contener el archivo:
4
2
N O azul
E S azul
3
F O rojo
E F azul
N S azul
2
N O rojo
E S azul
3
N S azul
E F rojo
F O rojo
Explicacion archivo:
La primera línea es un número entero N, correspondiente al número de baldosas que serán creadas.
En las líneas que siguen, recibirás la información de las N baldosas. Para cada una de ellas, la primera línea será un segundo número entero M, indicando el número de caminos pertenecientes a esa baldosa.
La información de cada camino será entregada en una sola línea, separada por espacios:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
def generar_mazo():
caminos = []
with open("baldosas.txt") as f:
baldosas = [dato.strip() for dato in f.readlines()][1:]
pos = 0
while pos < len(baldosas):
num_caminos = int(baldosas[0])
camino = baldosas[1:num_caminos+1]
caminos.append(camino)
baldosas = baldosas[num_caminos+1:]
pos = num_caminos
return caminos
caminos = generar_mazo()
print(caminos)
Si alguien me pudiese ayudar y explicar como lo podría realizar se lo agradeceria un millon
Valora esta pregunta


0