【问题标题】:Python list slicing [duplicate]Python列表切片[重复]
【发布时间】:2015-05-09 19:07:37
【问题描述】:

我了解到列表切片会返回一个新的列表实例。 所以我认为这段代码行不通,因为 b[:] 与 b 实例不同。但是,结果是 5,这意味着首先列出第二个复制的列表。我对切片感到困惑。它不会返回一个新实例吗?

def copy(a,b):
        b[:] = a[:]

first = [1, 2, 3, 4, 5]
second = []
copy(first,second)
print second[-1]

【问题讨论】:

  • 通过b[:] = something,您正在更新列表对象b 引用。这是有效的,因为列表是可变的。因此,在您的函数中,分配给 second 的(空)列表对象被更新。

标签: python slice


【解决方案1】:

您在此处使用切片分配

b[:] = a[:]

b 的内容从头到尾替换为 a 的内容。

【讨论】:

    猜你喜欢
    • 2013-10-24
    • 2017-02-09
    • 2020-03-10
    • 2021-09-07
    • 2023-03-28
    • 2019-06-16
    • 1970-01-01
    • 2017-06-24
    • 2015-02-19
    相关资源
    最近更新 更多