如何检查列表是否包含在另一个列表中,而只是其中的一部分? 我的意思是:
list_a = [1,2,3,4,5,6]
list_b = [4,2,5,4,7,7]
我只想检查list_b是否类似[*,2,*,4,*,*,*]。 (*表示任何字符/数字)
编辑1:更具体地说,我想检查列表[*,2,*,4,*,*,*]是否包含在任何其他列表中。
例如,它将包含在[1,4,5, 2 ,7, 4 ,8]
编辑2:2处于第二位置而第四位是4处是巧合。我试图实现的是检查列表模式是否包含在另一个列表中。在模式列表中,不包括所有元素。例如,检查pattern_list = [foo,foo,8,foo,foo,foo,7]是否包含在另一个列表中= [foo,foo,foo,foo,foo,8,foo,foo,foo,7,foo ,foo]
答案 0 :(得分:1)
这是你的想法吗?
>>> list_a = [1, 2, 3, 4, 5, 6]
>>> list_b = [4, 2, 5, 4, 7, 7]
>>> [x for x,y in zip(list_a, list_b) if x == y]
[2, 4]
答案 1 :(得分:1)
def allUnique(L):
for i in L:
if i != L[0]: return False
return True
In [21]: list_a = [1, 2, 3, 4, 5, 6]
In [22]: list_b = [4, 2, 5, 4, 7, 7]
In [23]: answer = [t[0] if allUnique(t) else "*" for t in zip(list_a, list_b)]
In [24]: answer
Out[24]: ['*', 2, '*', 4, '*', '*']
答案 2 :(得分:0)
您可以使用以下内容:
>>>a = [1, 2, 3, 4]
>>>b = [3, 67, 1]
>>>list(set(a).intersection(set(b)))
>>>[1, 3]