如何判断列表和列表具有相同的值

时间:2015-04-30 06:49:54

标签: python list

我在python中有两个列表:

A_list=['admin', '_member_'] 
B_list=['admin', 'agents', 'sales', 'dev']

如果AB具有相同的返回True

2 个答案:

答案 0 :(得分:1)

如果您的问题是“请AB有任何共同的元素,忽略位置”,那实际上是一个设置操作:它只是询问交集是否为非空。 * 所以:

if set(A).intersection(B):
    return True

另一方面,如果您的问题是“请AB在同一位置”具有共同的任何元素,那么这肯定是一个序列( list)操作,但是Python有一种非常简单的方法可以将一对序列压缩成一对序列:

if any(a==b for a, b in zip(A, B)):
    return True

*这也比为B中的每个元素迭代地搜索A更有效,但通常对于像你这样的小值无关紧要;事实上很明显,而且几乎没有办法让任何巧妙的错误,另一方面,这很重要。

答案 1 :(得分:0)

您可以使用any查看是否至少有一个元素与两者共有:

any([item in A_list for item in B_list])
>>> A_list=['admin', '_member_'] 
>>> B_list=['admin', 'agents', 'sales', 'dev']
>>> any([item in A_list for item in B_list])
True
>>> B_list=['student', 'agents', 'sales', 'dev']
>>> any([item in A_list for item in B_list])
False
>>>