在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]
答案 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通常会在每个帖子中提出一个问题并向我们展示您的尝试。