考虑到我已:
1个整数数组,转换为一个集合(名为neighbors
)
要避免的3组其他整数(命名为forbidden1
、forbidden2
和forbidden3
)
_uuu
neighbors = {6, 12, 9}
forbidden1 = {1, 4, 7, 8}
forbidden2 = {2, 5, 0, 3}
forbidden3 = {6, 9}
_uuu
以下哪种解决方案最能有效地从第一组中过滤出禁止值?为什么
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)
已试用(timeit python):
都差不多
相关问题 更多 >
编程相关推荐