История изменений
Исправление vvn_black, (текущая версия) :
По ошибке, какая версия python? Синтаксис f-строк появился с 3.6.
И зачем же так в лоб копировать. Я не дал готовое решение, а предложил реализовать вам самостоятельно методы-генераторы items и values для DoublyLinkedList и в качестве примера показал, что display в этом случае будет выглядеть кмк получше.
Если с генераторами непонятно, то как-то так это выглядит и должно работать:
class DoublyLinkedList:
...
def items(self):
x = self.first
while x:
yield x
x = x.next
def values(self):
x = self.first
while x:
yield x.data
x = x.next
def display(self):
return ', '.join([str(x) for x in self.values()])
print('The list: ', a_dllist.display())
Т.е. теперь можно по порядку перебирать узлы списка или значения совсем просто:
for node in a_dllist.items():
print(node.data)
...
for data in a_dllist.values():
print(data)
print(sum(a_dllist.values()))
Исправление vvn_black, :
По ошибке, какая версия python? Синтаксис f-строк появился с 3.6.
И зачем же так в лоб копировать. Я не дал готовое решение, а предложил реализовать вам самостоятельно методы-генераторы items и values для DoublyLinkedList () и в качестве примера показал, что display в этом случае будет выглядеть кмк получше.
Если с генераторами непонятно, то как-то так это выглядит и должно работать:
class DoublyLinkedList:
...
def items(self):
x = self.first
while x:
yield x
x = x.next
def values(self):
x = self.first
while x:
yield x.data
x = x.next
def display(self):
return ', '.join([str(x) for x in self.values()])
print('The list: ', a_dllist.display())
Т.е. теперь можно по порядку перебирать узлы списка или значения совсем просто:
for node in a_dllist.items():
print(node.data)
...
for data in a_dllist.values():
print(data)
print(sum(a_dllist.values()))
Исходная версия vvn_black, :
По ошибке, какая версия python? Синтаксис f-строк появился с 3.6.
И зачем же так в лоб копировать. Я не дал готовое решение, а предложил реализовать вам самостоятельно методы-генераторы items и values для DoublyLinkedList () и в качестве примера показал, что display в этом случае будет выглядеть кмк получше.
Если с генераторами непонятно, то как-то так это выглядит и должно работать:
class DoublyLinkedList:
...
def items(self):
x = self.first
while x:
yield x
x = x.next
def values(self):
x = self.first
while x:
yield x.data
x = x.next
def display(self):
return ', '.join([str(x) for x in self.values()])
print('The list: ', a_dllist.display())
Т.е. теперь можно по порядку перебирать узлы списка совсем просто:
for node in a_dllist.items():
print(node.data)
print(sum(a_dllist.values()))