我在python中有两个列表:
A_list=['admin', '_member_']
B_list=['admin', 'agents', 'sales', 'dev']
如果A
和B
具有相同的返回True
答案 0 :(得分:1)
如果您的问题是“请A
和B
有任何共同的元素,忽略位置”,那实际上是一个设置操作:它只是询问交集是否为非空。 * 所以:
if set(A).intersection(B):
return True
另一方面,如果您的问题是“请A
和B
在同一位置”具有共同的任何元素,那么这肯定是一个序列( 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
>>>