How to check for similar items in two different lists in Python 3?
本问题已经有最佳答案,请猛点这里访问。
在python中,如何检查两个列表是否包含相同的项,并返回这些项的列表,或者如果匹配,返回true?
鉴于:
1 2 | list1=[1,2,3,4,5] list2=[2,4,6,8] |
我如何返回:
1 | list3=[2,4] |
或者使用检查是否为真,如:
1 2 | if MATCHES EXIST: DO SOMETHING |
另外,如何将列表中的项连接成单个序列或字符串?
鉴于:
1 | list1=[1,2,3,4,5] |
我如何返回:
1 | list2=[12345] |
在python中,可以使用
1 2 3 4 5 | >>> a=[1,2,3] >>> b=[2,3,4] >>> set(a) & set(b) {2, 3} >>> |
要以列表格式获取此输出,只需键入以下内容
1 2 | >>> list(set(a) & set(b)) [2, 3] |
可以使用
1 2 3 4 | >>> a="123" >>> list(a) ['1', '2', '3'] >>> |
你的第一个问题已经得到了@k-suthagar的很好回答,所以我会在这个问题上听从他的。虽然这里的方法稍有不同,但效果很好,返回一个新列表:
1 2 3 | list1=[1,2,3,4,5] list2=[4,2,3,9,9] list3 = list( set( list1 ).intersection( set( list2 ) ) ) |
如果只想检查是否有匹配项,可以执行以下操作:
1 2 3 4 | if set( list1 ).intersection( set( list2 ) ): print("These lists contain some identical elements." ) else: print("These lists do NOT contain identical elements." ) |
关于第二个问题,您可以执行以下操作:
1 2 3 4 5 | list1=[1,2,3,4,5] list2 = [ int( ''.join(str(x) for x in list1) ) ] print( list2 ) [12345] |
如果您希望联接字符串,或者希望结果是字符串,只需除去int强制:
1 2 3 | list1=[1,2,3,4,5] list2 = [ ''.join(str(x) for x in list1) ] print( list2 ) |
注意:在stackoverflow上,每个帖子问一个问题,并向我们展示您所做的尝试是一个很好的实践。