如何在Python 3中检查两个不同列表中的类似项?

时间:2016-12-29 07:21:48

标签: python python-3.x

在Python中,如何检查两个列表是否包含相同的项目,并返回这些项目的列表,或者如果匹配则返回True?

假设:

list1=[1,2,3,4,5]
list2=[2,4,6,8]

我该如何回复:

list3=[2,4]

或使用检查是否属实,如:

if MATCHES EXIST:
    DO SOMETHING

另外,我如何将列表中的项连接成单个序列或字符串?

假设:

list1=[1,2,3,4,5]

我该如何回复:

list2=[12345]

2 个答案:

答案 0 :(得分:3)

在Python中,您可以使用set从两个不同的列表中获取类似的项目。这将为您提供两个不同列表中相同的值。

>>> a=[1,2,3]
>>> b=[2,3,4]
>>> set(a) & set(b)
{2, 3}
>>> 

要以列表格式获取此输出,请按以下方式输入

>>> list(set(a) & set(b))
    [2, 3]

您可以使用list("123")命令

从字符串值创建列表
>>> a="123"
>>> list(a)
['1', '2', '3']
>>> 

答案 1 :(得分:0)

你的第一个问题已经被@ k-suthagar很好地回答了,所以我会在那个问题上顺从他。虽然这里的方法略有不同,但表现良好,返回一个新列表:

list1=[1,2,3,4,5]
list2=[4,2,3,9,9]
list3 = list( set( list1 ).intersection( set( list2 ) ) )

如果您只是想检查是否任何匹配项,您可以这样做:

if set( list1 ).intersection( set( list2 ) ):
    print( "These lists contain some identical elements." )
else:
    print( "These lists do NOT contain identical elements." )

关于第二个问题,您可以执行以下操作:

list1=[1,2,3,4,5]
list2 = [ int( ''.join(str(x) for x in list1) ) ]
print( list2 )

[12345]

如果你想加入字符串,或者结果是一个字符串,只需删除int强制:

list1=[1,2,3,4,5]
list2 = [ ''.join(str(x) for x in list1) ]
print( list2 )

注意:StackOverflow通常会在每个帖子中提出一个问题并向我们展示您的尝试。