最近在coding的时候,写的代码中只有一层循环,却很耗时不明觉厉。不知道是哪里出了问题,于是我就在每一行代码中都打印一下耗时,最终发现了这个罪魁祸首。这里我只说明两个我遇到耗时的场景,当然还有很多其他的方法可能也是一样的,这里只是提供问题的思路!


说明:

这里比较耗时,是我在外层使用了循环,在循环内部调用了列表的remove()方法、使用了if xxx in xx判断等类似操作!

1 python列表的remove方法比较耗时原因

1、例如,下面的伪代码

  • 首先是循环
  • 然后通过remove删除字典对应value列表中的一个元素

就是在remove删除列表元素的过程,其实是相当对这个value列表进行循环,当循环到要删除的元素后,循环停止!

因此这段代码的时间复杂度就是<=O2<=O^2<=O2,几乎就等价于两层for循环,因此当第一层循环有80W,第二层有1w,这个循环就已经非常耗时了!

data = {'a': [], 'b': [], ...}
for key, value in data.items():value.remove('xxx')

2、判断if xxx in xx条件比较耗时问题

1、例如,如下的伪代码

data = {'a': [], 'b': [], ...}
for key, value in data.items():if xxx in xx

如果判断元素xxx是否在xx中,加入这个xx是一个列表,其实在判断的过程中,也是类似先对列表进行循环,让元素xxx和列表中的xx每个元素做对比,如果提前比对到就停止循环,和上面的remove()方法都是类似的,因此也会比较耗时!

因此,在写代码的时候一定想办法让代码更简洁,同时保证高效性

python的列表的remove()方法、判断if xxx in xx条件比较耗时问题相关推荐

  1. python remove函数_Python列表的remove方法的注意事项

    为何没有删除列表中的全部元素? 解释: 按照执行顺序,第一个空格被删除之后,后面的元素会前移(变成['空格','空格','12','23']),指针下一次会指向新列表的第二个元素(即初始状态的第三个空 ...

  2. python中列表的sort方法_python中列表的sort方法使用详解

    内容简介:python中列表的sort方法使用详解 一.基本形式 列表有自己的sort方法,其对列表进行原址排序,既然是原址排序,那显然元组不可能拥有这种方法,因为元组是不可修改的. 排序,数字.字符 ...

  3. python实现列表的排序方法

    本篇文章里小编给大家分享了关于python实现列表的排序方法以及相关知识点,有兴趣的朋友们可以学习下. 这次代码主要是实现列表的排序,使用sort函数实现,sort函数是对列表中的元素按照特定顺序进行 ...

  4. python语言remove_慎用python的pop和remove方法

    申明:转载请注明出处!!! Python关于删除list中的某个元素,一般有两种方法,pop()和remove(). 如果删除单个元素,使用基本没有什么问题,具体如下. 1.pop()方法,传递的是待 ...

  5. python extend_Python 列表 extend() 使用方法及示例

    Python 列表 extend() 使用方法及示例 将指定的列表元素(或任何可迭代的元素)添加到当前列表的末尾,extend()扩展了列表. extend()方法的语法为:list1.extend( ...

  6. Python中列表的copy方法

    首先感谢,资料由网上的查询共享并保存下来的,该资料完全是用来学习,希望大家有用. 1.在列表中存在一个名为copy的方法,就像字面意思一样copy方法是用于复制列表元素的,示例如下: 1 names ...

  7. python中列表的一些方法

    # 列表的方法有8个 # 分三类,1.插人,2.删除 3.其他 # 一.插人 # 1.s.append(x) # 2.s.insert(i,x) # 3.s.extend(s1)# 二.删除 # 4. ...

  8. Python 的列表的一些方法

    list.append(obj) 在列表末尾添加新的对象 list.count(obj) 统计某个元素在列表中出现的次数 list.extend(seq) 在列表末尾一次性追加另一个序列中的多个值(用 ...

  9. Python中列表的排序方法

    一.sort()排序方法 # 这个方法会改变a自身 a = [7,5,9,3] # True为逆序,False为正序 a.sort(reverse = False) print(a) a.sort(r ...

最新文章

  1. Qt编译PX4源码,参考如下进行配置
  2. ACMNO.41C语言-数字调序 有n个整数,使前面各数顺序向后移m个位置,最后m个数变成前面m个数,见图。写一函数:实现以上功能,在主函数中输入n个数和输出调整后的n个数
  3. 仿WINDWS无限级Ajax菜单树升级1.2版(菜单名支持非法字符)
  4. 【摩天好课推荐】传统企业数字化转型的困惑、思考与实践
  5. 区块链创业的成功范式,人工智能不得不学
  6. Python 环境搭建,开发工具,基本语法
  7. 注册中心—组件—ZooKeeper
  8. python为什么那么多人点赞_python为何会火遍全球?它究竟是什么呢?阿里大佬告诉你答案...
  9. I/O操作不占用CPU的任何线程
  10. MongoDB实战经验分享
  11. cad加载tiff影像插件_ENVI影像规则裁剪
  12. 二阶振荡环节的谐振频率_什么是谐振器?谐振器与振荡器有什么区别?
  13. js基础-19-判断图片加载完成的方法
  14. 微星刀锋 无法进入bios_微星MPG X570 GAMING EDGE WIFI刀锋板主板BIOS设置u盘启动教程...
  15. 萤石云 android,Android-再次解读萤石云视频
  16. python怎么用拼音-用Python写一个拼音输入法
  17. 软件工程-第三章 软件需求分析1
  18. 免费的NBA历史得分榜接口
  19. 开发小程序需要服务器吗?小程序服务器配置要求
  20. 如何解决非标自动化设备制造企业管理难题?ERP管理系统推荐

热门文章

  1. Hive数据导入Elasticsearch
  2. C段渗透攻击必看的技术知识
  3. KickStart 无人值守安装系统
  4. 关于面向对象的总结和疑惑(转载可乐冰
  5. Mysql中表名作为参数的问题
  6. 将jar文件做成exe可运行文件
  7. 可以获取python整数类型帮助的是什么-Python 的数值类型(整数、长整数、浮点数和复数)...
  8. 怎么进入python官网-Python的安装及简单的使用
  9. python软件开发-有哪些值得推荐的 Python 开发工具?
  10. python有趣代码-一个有意思的 Python 训练项目集