LINUX.ORG.RU

История изменений

Исправление 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()))