Я попытался прочитать из текстового файла два значения: 130,220
(разделенный запятой). Однако я создал связанный список узлов, которые имеют атрибуты dato1
и dato2
, в которые я хочу сохранить эти значения.
Когда я печатаю метод obtenerNodos
из моего класса считывателя, выведите только первое дублированное значение (130).
[130, 130]
Как мне отредактировать метод obtenerNodos
для dato1
и dato2
?
Я ожидаю: [130,220]
правильно хранится в связанном списке.
Ниже приведен код для узлов и связанный список.
Класс узла
class Nodo:
def __init__(self, dato1 = None, dato2 = None, siguienteNodo = None):
self.dato1 = dato1
self.dato2 = dato2
self.siguienteNodo = siguienteNodo
Класс связанного списка
class ListaEnlazada:
def __init__(self):
self.nodoInicio = Nodo()
self.nodoUltimo = Nodo()
def tamano(self):
actual = self.nodoInicio
total = 0
while actual.siguienteNodo != None:
total += 1
actual = actual.siguienteNodo
return total
def agregarNodoFinal(self, dato1, dato2):
nodoNuevo = Nodo(dato1, dato2)
actual = self.nodoInicio
while actual.siguienteNodo is not None:
actual = actual.siguienteNodo
actual.siguienteNodo = nodoNuevo
def obtenerNodos(self):
datos = []
nodo = self.nodoInicio
while nodo.siguienteNodo is not None:
nodo = nodo.siguienteNodo
datos.append(nodo.dato1)
return datos
def vacia(self):
if self.nodoInicio == None:
return True
else:
return False
Класс считывателя (Я не уверен, что мой считыватель работает правильно)
class LecturaArchivo:
listaEnlazada = ListaEnlazada()
nombreArchivo = input('Nombre del archivo: ')
archivo = open(nombreArchivo, "r")
lineas = archivo.read()
datos = lineas.split(',')
for dato in datos:
xTemporal = float(datos[0])
yTemporal = float(datos[1])
listaEnlazada.agregarNodoFinal((xTemporal), (yTemporal))
print(listaEnlazada.obtenerNodos())