【问题标题】:Multi-variable assignment, using lists?多变量赋值,使用列表?
【发布时间】:2018-02-25 13:13:16
【问题描述】:

对于多重赋值,左边应该是元组,所以首先是一个普通的元组赋值。

但是为什么列表赋值不会产生错误,它是一个列表而不是一个元组:

m = ['have', 'fun']
x, y = m
[a, b] = 1, 2

【问题讨论】:

  • 因为它不一定必须是一个元组。参见docs.python.org/2/reference/…,它实际上被称为target_list“如果目标是括在括号或方括号中的目标列表......”

标签: python variable-assignment


【解决方案1】:

支持元组和列表语法。请参阅target definition in the Assignment statements section

target          ::=  identifier
                     | "(" [target_list] ")"
                     | "[" [target_list] "]"

[...]

将对象分配给目标列表,可选择用括号或方括号括起来 [...]

这里没有创建实际的元组或列表,它只是 syntax 与列表和元组的语法相呼应。在赋值目标中使用元组或列表语法没有区别。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-08
    • 2020-07-23
    • 2014-03-22
    • 1970-01-01
    • 2017-02-19
    • 1970-01-01
    • 2012-04-01
    相关资源
    最近更新 更多