gpt4 book ai didi

python 表达式中的赋值顺序

转载 作者:太空宇宙 更新时间:2023-11-03 17:13:48 28 4
gpt4 key购买 nike

# class defined here.
class ListNode(object):
def __init__(self, x):
self.val = x
self.next = None

# A function here.
def list_init(lst):
if not lst:
return None

root = ListNode(lst[0])
temp = root
for i in range(1, len(lst)):
temp.next = ListNode(lst[i]) #
temp = temp.next # these two lines I want to simplify
return root

当我将两行简化为

temp = temp.next = ListNode(lst[i])

出了问题,root.next 为 None。

这两种赋值表达式有什么区别?

我认为它们是相同的,但结果不一样。

但是,我将语句更改为

temp.next = temp = ListNode(lst[i])

结果是正确的,困惑。

最佳答案

赋值语句将所有名称绑定(bind)到 RHS 上的同一对象。如果您想正确处理多个对象,请使用元组解包

temp, temp.next = temp.next, ListNode(lst[i])

关于python 表达式中的赋值顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33838258/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com