#python #list #linked-list #nodes
#python #Список #связанный список #узлы
Вопрос:
В настоящее время это функция, с которой я работаю. Это связанный список, использующий класс nodes. Вот реализация этого из моего учебника. Однако, когда я пытаюсь напечатать, я получаю этот вывод.
<main.Объект узла в 0x000001C1A21E5470> <main.Объект узла в 0x000001C1A21E5438> <main.Объект узла в 0x000001C1A21E54A8> <main.Объект узла в 0x000001C1A21E5400>
Я читал, что использование __repr__ могло бы помочь при печати, однако у меня это не сработало, когда я его реализовал.
def copyList(self):
links = LinkedList()
current = self.head
while current.getNext() != None:
links.addLast(current)
current= current.getNext()
links.addLast(current.getData())
return links
Функция вызывается следующим образом
list2=list1.copyList()
print(list2)
Функция repr, которую я пытался
def __repr__(self):
string=''
current = self.head
if current != None:
string = str(current.getData())
current = current.getNext()
counter=2
while current:
string = " " str(current.getData())
current = current.getNext()
if counter>9:
string=string 'n'
counter=0
counter=counter 1
return string
Комментарии:
1. Что
current.getData()
возвращает?2. Он возвращает строковое значение узла
Ответ №1:
Кажется, я неправильно понял ваш вопрос.
Я думаю, что проблема в вашей copyList
функции. Это должно быть:
def copyList(self):
links = LinkedList()
current = self.head
while current.getNext() != None:
links.addLast(current.getData())
current = current.getNext()
links.addLast(current.getData())
return links
Вы использовали links.addLast(current)
. Нужно посмотреть реализацию addLast()
метода для получения более подробной информации.
Комментарии:
1. Прямо сейчас в моем коде есть _ str_ и _ repr_ . Должен ли я избавиться от одного? Я использовал _ str_ только раньше, и, похоже, это тоже не сработало. Оба _ str_ и _ repr_ имеют одинаковый код
2. @pythonHelp извините, я могу неправильно понять ваш вопрос. Я отредактировал свой ответ. Надеюсь, это может помочь.
3. Спасибо, это фактически устранило мою проблему. Я использовал узлы в качестве параметров в качестве функций, когда это должны были быть строки. Спасибо!
4. @pythonHelp рад помочь. вы можете принять этот ответ 🙂