Параллельное присвоение трех переменных в Python [дубликат]Python

Программы на Python
Anonymous
Параллельное присвоение трех переменных в Python [дубликат]

Сообщение Anonymous »


Мой вопрос из популярного теста по программированию.

Дана цепочка, определенная следующим образом:

класс ListNode: защита __init__(self, x): self.val = х self.next = Нет Если мы хотим вернуть цепочку, например:

Ввод: 1->2->3->4->5->NULL

Вывод: 5->4->3->2->1->NULL

Это можно решить так:

класс Решение: defverseList(self, head: ListNode) -> ListNode: cur, pre = голова, нет пока дворняга: tmp = cur.next cur.next = предварительно предварительно = текущий кур = tmp возврат до Но есть более компактный способ, которому я не могу следовать:

класс Решение: defverseList(self, head: ListNode) -> ListNode: cur, pre = голова, нет пока дворняга: cur.next, pre, cur = pre, cur, cur.next возврат до Потому что, если я изменю строку параллельного назначения на

pre, cur, cur.next = cur, cur.next, pre Это больше не будет работать должным образом.

Мне интересно, как работает параллельное присвоение Python, особенно в случае, когда все три переменные являются динамическими.

Вернуться в «Python»