提问人: 提问时间:6/13/2020 更新时间:6/13/2020 访问量:58
在这种情况下,python中的多重赋值如何?[复制]
How does the multiple assignment from in this case in python? [duplicate]
问:
下面的代码用于在给定列表头部的情况下修改链表
class Solution:
def reverseList(self, head: ListNode) -> ListNode:
if head is None or head.next is None:
return head
prev = None
curr = head
while curr:
curr.next, prev, curr = prev, curr, curr.next
return prev
当 curr.next 在开始时被分配 prev 时,我们如何分配 curr = curr.next(第三个赋值)?
通常,一个临时变量用于存储 curr.next 的值,我们在这里如何绕过它?
答: 暂无答案
评论
prev, curr, curr.next
<ListNode object at 0x100>, <ListNode object at 0x200>, <ListNode object at 0x300>
curr.next = <ListNode object at 0x100>; prev = <ListNode object at 0x200>; curr = <ListNode object at 0x300>
how are we bypassing that here?
- 当解释器在右侧计算时,结果是一个对象。解释器存储该对象,以便以后将该对象分配给 时使用。所以虽然主要原因是由于评估顺序。另一部分原因是名称只是指向对象,它们不是对象 - 关于 Python 名称和值的事实和神话。curr.next
curr.next