是否有一个list方法可以实现python 2list.__delslice__的功能?这里有一个__delitem__但是它似乎只删除了一个项,而不是从x到y,所以下面是我想做的一个例子

somelist = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
somelist.__delslice__(4, len(somelist))
print(somelist)
# output: [1, 2, 3, 4]

似乎他们已经从Python3中删除了这个,是吗?如果不是,它现在叫什么,或者有一个模块有它吗?

最佳答案

根据Python 2.7 - object.__delslice__ documentation
调用以实现删除self[i:j]。i和j的注释与
用于获取切片。此方法已弃用。如果没有
找到或用于扩展self[i:j:k]形式的切片对象
被创建并传递给uuu delitem_uuu(),而不是uuu delslice_uu()
被召唤。
因此,用__delitem__对象调用slice

>>> somelist = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> somelist.__delitem__(slice(4, len(somelist)))
>>> somelist
[1, 2, 3, 4]

顺便说一句,你可以用None代替len(somelist)
>>> somelist.__delitem__(slice(2, None))
>>> somelist
[1, 2]

更新
您可以对slice使用del语句:
del somelist[2:]

关于python - list .__ delslice__ python 3,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22278457/

10-12 18:52