【发布时间】:2017-08-18 22:35:23
【问题描述】:
我知道,如果我想在 Python 中删除 t 列表的第一个元素,我可以这样做:
del t[0]
这是最简单的。但是:
t = t[1:]
也可以。在我从中学习的教科书中说,使用后一种方法通常被认为是不好的做法,因为它不会删除列表的头部本身而是
"切片操作符创建了一个新列表,并且赋值使 t 引用它,但这些都没有 对作为参数传递的列表有任何影响。”
为什么这样不好?你能举一个例子,这种方法会显着改变一个功能吗?提前致谢。
【问题讨论】:
-
如果你特别想做的是从列表中删除第一个元素,使用不这样做的方法是不好的做法。这并不意味着
t = t[1:]通常是不好的做法。 -
另外,您可以使用
t[:] = t[1:]修改原始列表。 -
在很多情况下
del t[0]或t = t[1:]都可以,很多情况下del t[0]是错误的而t = t[1:]是合适的。 -
您可以使用
t.pop(0),这将返回第一个元素的值并将其从列表中删除。 -
@darvark - OP 并没有要求从列表中删除项目的其他方法,他们询问的是修改原始列表与创建新列表的用例。
标签: python python-3.x