【问题标题】:Chain assignment in Python for list列表在 Python 中的链分配
【发布时间】:2022-11-30 05:23:18
【问题描述】:

我想了解 Python 中的链分配。

如果我运行x = x[1] = [1, 2],我会得到一个无限列表[1, [...]]

但是如果我运行x = x[1:] = [1, 2],我会得到一个正常的列表[1, 1, 2]

它是如何在后台工作以产生这两种不同的结果的?

【问题讨论】:

    标签: python variable-assignment infinite-loop


    【解决方案1】:
    x = x[1] = [1, 2]
    

    在这种情况下,xx[1]同一个对象.因此 x 包含本身,在您的输出中由 ... 表示。

    x = x[1:] = [1, 2]
    

    在这种情况下,x 是一个, 切片是副本.所以他们是不是同一个对象.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-28
      • 1970-01-01
      • 1970-01-01
      • 2014-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-09
      相关资源
      最近更新 更多