繁体   English   中英

Python,list.remove() 不正确

[英]Python, list.remove() does not work right

您好,我正在尝试删除列表中的第一个和最后两个元素。 我的列表是: ['12','30','22','06','27','13','23','16','14','20','09','29','23']

这是我正在使用的代码:

dList.remove(dList[0])
dList.remove(dList[-1])
dList.remove(dList[-1])

它适用于太多其他列表,但在此列表中它返回:

['30', '22', '06', '27', '13', '16', '14', '20', '09', '29']

代替;

['30', '22', '06', '27', '13', '23', '16', '14', '20', '09',]

我注意到最后一个元素是“23”,两个“23”都被删除了,但我不知道如何修复它。 它应该可以正常工作,因为我再次删除了第一个元素、最后一个元素和最后一个元素。 我没有使用:

a = dList[0]
dList.remove(a)
a = dList[-1]
dList.remove(a)
a = dList[-1]
dList.remove(a)

remove() 方法从列表中删除第一个匹配元素(作为参数传递)。

你有23重复了两次。

如果要删除索引,可以在示例中使用del 。它将是:

del dList[-1]

这应该工作

dList = dList[1:-2]

为什么不使用pop弹出列表的最后一个元素?

last_element = dList.pop()
semilast_element = dList.pop()

您甚至可以放置要弹出的元素的索引

first_element = dList.pop(0)
second_element = dList.pop(0)

始终参考原始文档

和:

dList = ['12','30','22','06','27','13','23','16','14','20','09','29','23']

...您可以使用切片(如前所述)构造一个新列表,如下所示:

dList = dList[1:-2]

...或者您可以使用pop()就地进行操作,如下所示:

dList.pop(0)
dList.pop()
dList.pop()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM