通过切片Python嵌套列表的奇怪行为

问题描述 投票:0回答:1

我有以下代码

mylst是一个嵌套列表:

mylst = [[507, 3, 30, 44, 522, 25],
[268, 40, 23, 54, 280, 67],
[424, 37, 28, 50, 438, 62],
[216, 47, 24, 50, 228, 72],
[562, 54, 23, 54, 574, 81],
[445, 63, 24, 59, 457, 93],
[217, 100, 23, 69, 229, 135],
[565, 115, 29, 65, 580, 148],
[596, 113, 22, 67, 607, 147]]

lst1 = mylst[4:6][:]

lst2 = mylst[:][4:6]

奇怪的事情,我为lst1和lst2变量获得了相同的输出:

print(lst1)
[[562, 54, 23, 54, 574, 81], [445, 63, 24, 59, 457, 93]]

print(lst2)
[[562, 54, 23, 54, 574, 81], [445, 63, 24, 59, 457, 93]]

怎么可能一样?

python list slice
1个回答
0
投票
使用[:]时,您实际上是在选择所有列表,从而制作了一个副本。如果尝试对其进行可视化,将发生以下情况:
© www.soinside.com 2019 - 2024. All rights reserved.