python - 这个符号对 Python : "someList[:]"? 中的列表有什么作用

标签 python list slice notation shallow-copy

我有时会遇到这种打印或返回列表的方式 - someList[:]。 我不明白人们为什么要使用它,因为它会返回完整列表。

为什么不简单地写 someList,不带 [:] 部分?

最佳答案

[:] 创建一个切片,通常用于获取列表的一部分。如果没有给出任何最小/最大索引,它会创建整个列表的副本。这是一个演示它的 Python session :

>>> a = [1,2,3]
>>> b1 = a
>>> b2 = a[:]
>>> b1.append(50)
>>> b2.append(51)
>>> a
[1, 2, 3, 50]
>>> b1
[1, 2, 3, 50]
>>> b2
[1, 2, 3, 51]

注意附加到 b1 的同时也将值附加到 a。附加到 b2 但没有修改 a,即 b2 是一个副本。

关于python - 这个符号对 Python : "someList[:]"? 中的列表有什么作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29963686/

相关文章:

python - Jupyter pandas.DataFrame 输出表格式配置

Python 生成器发送 : don't yield a new value after a send

python:如果存在于另一个列表中,则比较列表中的值

json - 如何在 JSON 中自定义编码(marshal)映射键

go - 在golang中查找和删除 slice 中的元素

go - Go 没有真正的方法来缩小 slice 吗?这是一个问题吗?

python - 从图书馆目录中抓取信息

python - 优化创建/运行多个 SQLalchemy 引擎?

vb.net - 使用 ForEach 迭代列表

Prolog中的列表移位