【问题标题】:All slice operations return a new list?所有切片操作都返回一个新列表?
【发布时间】:2013-12-23 17:35:57
【问题描述】:

在 Python 教程中,据说“所有切片操作都会返回一个包含所请求元素的新列表”。

>>>a = ['spam', 'eggs', 100, 1234]
>>>a[0:2] = [1, 12]
>>> a
[1, 12, 100, 1234]

如果所有切片操作都返回一个新列表,那么在此示例中列表 a 会如何更改?似乎只有右手边的切片操作会返回一个新列表。

更新

我的意思是 Python 中的 a[:] 到底是什么,是对新列表的 reference 或对列表的某些部分 areference > 或其他任何东西。我对基础级别的实现感兴趣,而不是行为。

【问题讨论】:

标签: python python-2.7 slice


【解决方案1】:

这是切片:

b = a[0:2]

这是切片分配:

a[0:2] = b

他们是不同的。后者会将aslice 部分替换为b 的值。它们看起来非常相似,但使用方式不同。

【讨论】:

    【解决方案2】:

    '=' 用于赋值。而且您在方括号中提供了位置。

    【讨论】:

      猜你喜欢
      • 2021-07-21
      • 1970-01-01
      • 1970-01-01
      • 2021-11-30
      • 2011-05-30
      • 1970-01-01
      • 1970-01-01
      • 2022-06-15
      • 1970-01-01
      相关资源
      最近更新 更多