С точки зрения ООП, наилучшей практикой является использование метода Python __iter__
для приведения итерируемого к list
.
Я предполагаю, что ваш связанный список class
выглядит немного какthis.
class LinkedList:
def __init__(self, value, nxt=None):
self.value = value
self.next = nxt
Чтобы разрешить итерацию в вашем связанном списке, вы можете определить __iter__
class LinkedList:
def __init__(self, value, nxt=None):
self.value = value
self.next = nxt
def __iter__(self):
while self:
yield self.value
self = self.next
Затем вы можете позволить list
обрабатывать приведение LinkedList
повторяемый.
head = LinkedList(1, LinkedList(2, LinkedList(3)))
lst = list(head) # [1, 2, 3]