【问题标题】:Understanding multiple assignments in Python [duplicate]了解 Python 中的多个赋值 [重复]
【发布时间】:2013-03-24 14:36:13
【问题描述】:

这有什么区别:

a, b = b, a+b

还有这个:

a = b
b = a+b

我正在尝试按照文档中的示例进行操作,而第一种形式(多重赋值语法)对我来说似乎很复杂。我试图用第二个例子来简化它,但它没有给出相同的结果。我清楚地解释了第一句话是错误的。我错过了什么?

【问题讨论】:

    标签: python


    【解决方案1】:

    多重赋值评估右侧所有事物的值在更改左侧的任何值之前。

    换句话说,区别在于:

    a = 1
    b = 2
    a = b                  # a = 2
    b = a + b              # b = 2 + 2
    

    对比这个:

    a = 1
    b = 2
    a, b = b, a + b        # a, b = 2, 1 + 2
    

    另一种思考方式是,它相当于构造一个元组,然后再次解构它(这实际上正是发生的事情,除了没有显式的中间元组):

    a = 1
    b = 2
    _tuple = (b, a+b)
    a = _tuple[0]
    b = _tuple[1]
    

    【讨论】:

    • 您可能想通过使用tmp 变量来说明您的第二个示例
    • @jamylak 这就是_tuple。
    猜你喜欢
    • 2023-03-04
    • 2019-02-27
    • 1970-01-01
    • 2021-03-30
    • 2013-07-24
    • 2014-05-06
    • 2017-03-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多