.next方法python 3.6

问题描述 投票:-1回答:1

以下是反转链表的代码。我的问题是这个代码导致错误,说列表没有下一个属性。然后我尝试使用iter()生成一个迭代。错误变为''list_iterator'对象没有属性'next''

method.next的用法是什么?

a=[6,5,4,3,2,1,]
iter_a=iter(a)


def reverse_iterative(head):
# no need to reverse if head is null 
# or there is only 1 node.
if (head == None or 
    head.next == None):
  return head

list_to_do = head.next

reversed_list = head
reversed_list.__next = None

while (list_to_do != None):
  temp = list_to_do
  list_to_do = list_to_do.next

  temp.next = reversed_list
  reversed_list = temp

return reversed_list
python encoding linked-list
1个回答
3
投票

列表或迭代器上没有.next()方法。你正在寻找next(...)内置。

试试这个:

iterator = iter(list_to_do)
while True:
    try:
        item = next(iterator)
    except StopIteration:
        break

    # do stuff with `item`

我假设你这样做是为了学习迭代器的内部结构,但如果你不这样做,请使用for循环:

for item in list_to_do:
    pass

甚至更好,只需使用reversed()

reversed(list_to_do)
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.