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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。