在python中检查集合的成员资格

2024-09-28 20:16:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我在python代码中有一个语句

msk = (var1 == 49) | (var1 == 26) | (var1 == 28)

现在,我想要一个更长的列表,而不是(49,26,28),并使其可变

我试过解决办法 Python equivalent of MATLAB's "ismember" function 但这不是我想要的。在

比如:

^{pr2}$

Tags: of代码列表function语句equivalentmatlabvar1
3条回答

^{}应该适用于这种情况:

a
Out[153]: array([ 1, 10, 26, 28, 40, 49])

b
Out[154]: array([26, 28, 49, 50])

要检查数组a中的元素是否也在数组b中:

^{pr2}$

当然,您也可以将其用于单个元素:

np.in1d(28, b)
Out[158]: array([ True], dtype=bool)

np.in1d(43, b)
Out[159]: array([False], dtype=bool)

您可以使用in运算符:

msk = var1 in {49, 26, 28}

使用set intersection operator

import numpy as np

list1 = np.Array([1, 2, 3, 49])
list2 = np.Array([1, 2, 3, 4])

msk1 = any({49, 26, 28} & set(list1))
# => True

msk2 = any({49, 26, 28} & set(list2))
# => False

这对numpy数组和常规列表都有效。在

相关问题 更多 >