use*_*209 2 python list python-2.x python-3.x
是否有一个列表的方法来执行python 2的list.__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]
Run Code Online (Sandbox Code Playgroud)
看起来他们可能已经从python 3中删除了它,是吗?如果没有它现在叫什么或有一个模块有它?
根据Python 2.7 - object.__delslice__文档:
被称为实现删除self [i:j].对于i和j,与__getslice __()相同.不推荐使用此方法.如果没有找到__delslice __(),或者对于形式self [i:j:k]的扩展切片,则创建切片对象,并传递给__delitem __(),而不是调用__delslice __().
所以,调用__delitem__with slice对象:
>>> somelist = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> somelist.__delitem__(slice(4, len(somelist)))
>>> somelist
[1, 2, 3, 4]
Run Code Online (Sandbox Code Playgroud)
顺便说一句,你可以用来None代替len(somelist):
>>> somelist.__delitem__(slice(2, None))
>>> somelist
[1, 2]
Run Code Online (Sandbox Code Playgroud)
UPDATE
您可以使用del带有切片的语句:
del somelist[2:]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
548 次 |
| 最近记录: |