快速性能测试显示Lutz的解决方案是最好的:import timedef speed_test(func):

def wrapper(*args, **kwargs):

t1 = time.time()

for x in xrange(5000):

results = func(*args, **kwargs)

t2 = time.time()

print '%s took %0.3f ms' % (func.func_name, (t2-t1)*1000.0)

return results return wrapper@speed_testdef compare_bitwise(x, y):

set_x = frozenset(x)

set_y = frozenset(y)

return set_x & set_y@speed_testdef compare_listcomp(x, y):

return [i for i, j in zip(x, y) if i == j]@speed_testdef compare_intersect(x, y):

return frozenset(x).intersection(y)# Comparing short listsa = [1, 2, 3, 4, 5]b = [9, 8, 7, 6, 5]compare_bitwise(a, b)compare_listcomp(a, b)compare_intersect(a, b)# Comparing longer listsimport random

a = random.sample(xrange(100000), 10000)b = random.sample(xrange(100000), 10000)compare_bitwise(a, b)compare_listcomp(a, b)compare_intersect(a, b)

以下是我的机器上的结果:# Short list:compare_bitwise took 10.145 ms

compare_listcomp took 11.157 ms

compare_intersect took 7.461 ms# Long list:compare_bitwise took 11203.709 ms

compare_listcomp took 17361.736 ms

compare_intersect took 6833.768 ms

很明显,任何人工性能测试都应该用盐来做,但因为set().intersection()答案是至少同样快作为其他的解决方案,也是最易读的,它应该是这个常见问题的标准解决方案。

python中怎么比较两个列表-如何比较python中的两个列表并返回匹配相关推荐

  1. python列表中随机两个_随机化两个列表并在python中维护顺序

    随机化两个列表并在python中维护顺序 说我有两个简单的清单, a = ['Spears', "Adele", "NDubz", "Nicole&q ...

  2. python 判断两个列表间是否具有包含关系以及获取子列表在父列表中的索引

    python 判断两个列表间是否具有包含关系以及获取子列表在父列表中的索引 import operator def get_sub_list_index(parent_list, sub_list): ...

  3. python中如何将两个列表进行合并_Python中如何把两个list合并,并按从小到大顺序排列?...

    本题分为两个部分:一个是list的合并,一个是用while loop循环将合并后的数组从小到大进行排序--排序问题. 1. List的合并: list的合并其实非常简单,只需要用"+&quo ...

  4. insert 语句的选择列表包含的项多于插入列表中的项_如何定义和使用Python列表(Lists)

    Python中最简单的数据集合是一个列表(list).列表是方括号内用逗号分隔的任何数据项列表.通常,就像使用变量一样,使用=符号为Python列表分配名称. 如果列表中包含数字,则不要在其周围使用引 ...

  5. python列表方法语句_Python中列表和元组的相关语句和方法讲解

    列表(list): 首先,列表属于序列,那么序列类型可用如下内建函数-- list(iter):把可迭代对象转换为列表. str(obj):把obj对象转换为字符串,即用字符串来表示这个对象. tup ...

  6. python列表切片得到的是列表还是字符串_python中列表的切片问题 python arry怎么取列切片...

    python 列表切片赋值 对列表切片进行赋值,解释器处理时是直接将序列中的内容赋值过去的 ,还切片赋值,得到的与原变量无关,是两个不同的对象:直接赋值,引用的是同一个对象. 请看下例 切片赋值. a ...

  7. python列表对象相同_Python中的学习列表对象,List

    List(列表) 是 Python 中使用最频繁的数据类型. 列表可以完成大多数集合类的数据结构实现.列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套). 列表是写在方括号 [ ...

  8. python中的可变数据类型有列表和元组_Python中列表的 += 和 .extend() 的异同

    一道Python题 最近有朋友"考"了我一个Python的题:使用+=和.extend()两种方法扩展元组中的列表会发生什么.虽然我对Python中的可变数据类型.不可变数据类型的 ...

  9. python中如何编写代码输入多个数据并把它们放在一个列表中去_10分钟学习函数式Python...

    在这篇10分钟的文章中,您将学习Python中的函数式范型.您还将学习列表推导式. 目录 函数式范式 Python的map函数是如何运行的 Python中的lambda表达式 Python中的redu ...

  10. python中不能使用下标运算的有哪些_Python中最常见的10个问题(列表)

    列表是Python中使用最多的一种数据结果,如何高效操作列表是提高代码运行效率的关键,这篇文章列出了10个常用的列表操作,希望对你有帮助. 注意:很多人学Python过程中会遇到各种烦恼问题,没有人帮 ...

最新文章

  1. 程序员必备的20个软件
  2. 干货|六维力和力矩传感器的技术与应用
  3. 老板:kill -9的原理都不知道就敢到线上执行,明天不用来了!
  4. **Java有哪些悲观锁的实现_Redis 分布式锁的正确实现方式(Java版)
  5. 为什么parsefloat加出来还是字符串_为什么酒店的包子做的这么好吃?里面加了什么说出来你可能不信...
  6. Spring整合Redis做数据缓存(Windows环境)
  7. Java EE 8 –为更多设备提供更多应用程序
  8. python递归函数详解-讲解Python中的递归函数
  9. pycharm 快捷键2
  10. java 关闭 tomcat,每次关闭TOMCAT就报错 不知道什么?该如何处理
  11. java单例模式实例_Java设计模式之单例模式 通俗易懂 超详细 【内含案例】
  12. MyBatis+Oracle实现主键自增长
  13. vue前端框架面试问题汇总,附答案
  14. 【渝粤教育】电大中专电商运营实操 (7)作业 题库
  15. JSdom操作内容,样式,属性
  16. 全网首发:彻底搞清楚了下划线的规则
  17. 【VirtualBox】VirtualBox的四种网络连接模式
  18. 闲来无事实现个备忘录,到点提醒
  19. jquery 使用文档
  20. YouTube-8M数据集starter code部分翻译

热门文章

  1. WPF加载程序集中字符串资源
  2. BZOJ1433 [ZJOI2009]假期的宿舍 - 二分图匹配
  3. PHP中全局变量$_POST[]和$_GET[]
  4. Jessica's Reading Problem
  5. 【Android】保存Fragment切换状态
  6. java进销存一个人要做多久,如何取得当前年的时间! 找java进销存系统
  7. 廖雪峰python教程书-Python 爬虫:把廖雪峰的教程转换成 PDF 电子书
  8. python基础实例-Python入门基础知识实例,值得收藏!
  9. python就业前景-Python就业前景分析
  10. python在财务上的应用-利用python实现周期财务统计可视化