python两个列表找相同元素,python比较两个list的内容是否相同

  python两个列表找相同元素,python比较两个list的内容是否相同

  通过不断的测试,发现python可以高效快速的比较两个列表的差异,并且可以通过python set set()提供的set操作进行操作,效率非常高。

  在java语言中,下面的方法1比方法2 (set操作)更高效、更快。这是两种语言的区别。

  代码如下:

  #-*-编码:utf-8 -*-

  导入时间

  #方法13360

  def getDiff1(arr1,arr2):

  start_time=time.time()

  打印( 1_start: ,开始时间)

  arr_more1=[]

  arr_more2=[]

  dic_result={}

  对于arr1:中的str_1

  dic_result[str(str_1)]=1

  对于arr2:中的str_2

  if DIC _ result . get(str(str _ 2)):

  dic_result[str(str_2)]=2

  else:

  arr_more2.append(str_2)

  对于键,值在dic_result.items():中

  如果val==1:

  arr_more1.append(key)

  Print(arr1是: 内容比arr2多,len (arr _ more1))

  Print(arr2是: 内容比arr1多,len (arr _ more2))

  end_time=time.time()

  打印( 1_end: ,结束时间)

  打印(方法1_比较时间为,结束时间-开始时间)

  #方法2:使用集合操作:

  def getDiff2(arr1,arr2):

  start_time=time.time()

  打印( 2_start: ,开始时间)

  set_1=()

  set_2=()

  #将列表转换为集合集()

  set_1=set(arr1)

  set_2=set(arr2)

  set_more1=()

  set_more2=()

  #设置操作

  集合_1_2=集合_1集合_2

  集合_更多1=集合_ 1-集合_1_2

  集合_更多2=集合_ 2-集合_1_2

  Print(arr1是: 内容比arr2多,len (set _ more1))

  Print(arr2是: 内容比arr1多,len (set _ more2))

  end_time=time.time()

  打印( 2_end: ,结束时间)

  打印(方法2_比较时间为,结束时间-开始时间)

  #测试

  #初始化500w条数据

  arr1=[]

  arr2=[]

  i=0

  while(True):

  arr1.append(i * 2)

  arr2.append(i * 3)

  i=1

  如果我5000000:

  破裂

  print(arr1 的长度是:print( arr 1))

  print(arr2 的长度是:print( arr 2))

  打印( *30)

  getDiff1(arr1,arr2)

  打印(-*30)

  GetDiff2(arr1,arr2)运行结果:

  更多Python相关技术文章,请访问Python教程专栏学习!这就是如何在python中比较两个列表的不同细节。更多详情请关注热门IT软件开发工作室其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: