История изменений
Исправление 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()))