[英]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.