Учитывая, что у меня есть:
1 массив целых чисел, преобразованных как набор (с именем neighbors
)
3 других набора целые числа, которых следует избегать (с именами forbidden1
, forbidden2
и forbidden3
)
__
neighbors = {6, 12, 9}
forbidden1 = {1, 4, 7, 8}
forbidden2 = {2, 5, 0, 3}
forbidden3 = {6, 9}
__
Какие из следующих решения будут наиболее эффективными при отфильтровывании запрещенных значений из первого набора? И почему?
A / понимание списка с помощью if
оператора и логических операторов and
[x for x in neighbors if x not in forbidden1 and x not in forbidden2 and x not in forbidden3]
B / понимание списка с if
операторы оператора и объединения |
[x for x in neighbors if x not in forbidden1 | forbidden2 | forbidden3]
C / filter () с логическими операторами and
filter(lambda x: x not in forbidden1 and x not in forbidden2 and x not in forbidden3, neighbors)
D / filter () с операторами объединения |
filter(lambda x: x not in forbidden1 | forbidden2 | forbidden3, neighbors)
E / установить разницу с операторами объединения |
neighbors.difference(forbidden1 | forbidden2 | forbidden3)