【问题标题】:Difference in evaluation order of comma separator and normal assignment in python [duplicate]python中逗号分隔符的评估顺序和正常分配的差异[重复]
【发布时间】:2022-01-22 05:33:57
【问题描述】:

谁能告诉我普通赋值和逗号分隔赋值的区别?

普通作业:

prev.next = head.next
head.next = None
head = head.next

逗号分隔符分配:

prev.next,head.next,head= head.next,None,head.next

这两种情况下的执行顺序会如何变化?谁能解释一下评估顺序?

提前致谢。

【问题讨论】:

  • 我相信 Python 会先创建临时变量来捕获右侧的元组,然后再执行赋值。 python中有一个成语,可以在一行代码中切换两个变量的值:a, b = b, a

标签: python execution comma assignment-operator evaluation


【解决方案1】:

等号的右侧总是在赋值给左侧的值之前进行评估,无论您是否正在解包。

【讨论】:

    【解决方案2】:

    这样写:

    a,b,c = 1,2,3
    

    就像写这个

    temp = (1, 2, 3)
    (a, b, c) = temp
    

    顺序固定:

    赋值语句计算表达式列表(请记住,这可以是单个表达式或逗号分隔的列表,后者产生一个元组)并将单个结果对象从左到右分配给每个目标列表。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-06
      • 1970-01-01
      • 2016-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-09
      • 2023-03-29
      相关资源
      最近更新 更多