热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python列表删除多个元素_python删除列表中前N个元素的最有效方法?

Python列表并未在列表的开头进行操作,并且在此操作中非常无效。虽然你可以写mylist[1,2,3,4]mylist.pop(0)这是非常低效的。如果只

Python列表并未在列表的开头进行操作,并且在此操作中非常无效。

虽然你可以写

mylist = [1, 2 ,3 ,4]

mylist.pop(0)

这是非常低效的。

如果只想从列表中删除项目,则可以使用popleft()进行以下操作:

del mylist[:n]

这也真的很快:

In [34]: %%timeit

help=range(10000)

while help:

del help[:1000]

....:

10000 loops, best of 3: 161 µs per loop

如果需要从列表的开头获取元素,则应使用Raymond Hettinger的popleft()及其popleft()方法。

from collections import deque

deque(['f', 'g', 'h', 'i', 'j'])

>>> d.pop() # return and remove the rightmost item

'j'

>>> d.popleft() # return and remove the leftmost item

'f'

一个对比:

清单+弹出(0)

In [30]: %%timeit

....: help=range(10000)

....: while help:

....: help.pop(0)

....:

100 loops, best of 3: 17.9 ms per loop

deque + popleft()

In [33]: %%timeit

help=deque(range(10000))

while help:

help.popleft()

....:

1000 loops, best of 3: 812 µs per loop



推荐阅读
author-avatar
写bug小能手
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有