检查一个数组的元素包含在另一个数组中

Jan*_*ake 2 arrays python-2.7

**

labels = ['UNREAD', 'CATEGORY_PERSONAL', 'INBOX']
incomingLabels = ['UNREAD','IMPORTANT' 'CATEGORY_PERSONAL', 'INBOX']
Run Code Online (Sandbox Code Playgroud)

**

labels array是静态数组。我如何检查incoming array包含labels array.

我的尝试

intersectionOfTwoArrays = list(set(incomingLabels) & set(labels))
if np.array_equal(labels, intersectionOfTwoArrays): 
   //Do somthing 
Run Code Online (Sandbox Code Playgroud)

该尝试未成功,因为intersectionOfTwoArrays's与订购的顺序不同labels array

任何人都可以帮助我吗?

Sky*_*ycc 7

在执行 array_equal 之前将两个列表都转换为 set 以避免顺序问题

labels = ['UNREAD', 'CATEGORY_PERSONAL', 'INBOX']
incomingLabels = ['UNREAD','IMPORTANT', 'CATEGORY_PERSONAL', 'INBOX']
intersectionOfTwoArrays = list(set(incomingLabels) & set(labels))

if np.array_equal(set(labels), set(intersectionOfTwoArrays)): 
    # Do somthing 
    print "match"
Run Code Online (Sandbox Code Playgroud)

或者,您可以使用 set 方法 issubset

labels = ['UNREAD', 'CATEGORY_PERSONAL', 'INBOX']
incomingLabels = ['UNREAD','IMPORTANT', 'CATEGORY_PERSONAL', 'INBOX']

if set(labels).issubset(set(incomingLabels)):
    # issubset true, do something
    print "match"
Run Code Online (Sandbox Code Playgroud)