当我将两个列表等价并从一个列表中删除时,它也会从另一个列表中删除

时间:2019-01-24 13:03:51

标签: python list pop del

我是一个试图迁移到Python的MATLAB用户!

我有一个列表说a = [1,2,3] 我想拥有另一个列表,该列表除了列表a的第一个元素外,都具有其他所有元素。但我想保留清单以供进一步使用。我要做的是:

b = a

del b[0]

但是当我打印时我得到:

print(b)
>>[2, 3]

print(a)
>>[2, 3]

从两个列表中删除第一个元素。为什么会发生这种情况以及如何解决它

1 个答案:

答案 0 :(得分:1)

在这种情况下,您可以复制列表的一部分:

b = a[1:]

作为以前的MATLAB用户,您可能已经习惯了这种表示法,但是请注意,Python中的索引是基于0的(而不是基于MATLAB的索引是基于1的),而a:b:c,b是结束索引(但不包括!),c是步长。

如果您想复制整个列表,

b = a[:]

将是要走的路。