C. *_*eng 1 python comparison list
如果我想检查列表中的所有元素是否存在
a: [1 2 3 6]
大于或等于另一个列表中的对应元素
b: [0 2 3 5]
如果a [i]> b [i]为所有我,则返回true,否则为false.这有逻辑功能吗?比如a> b?谢谢
你可以做到
all(x >= y for x,y in zip(a,b))
Run Code Online (Sandbox Code Playgroud)
它具有短路评估的优点:如果发现任何x < y它False立即返回.
如果你真的想在每一个元素比较a对b你其实只需要检查针对max的b,因此将是一个0(n)解决方案短路,如果我们发现有任何元素小于B的最大值:
mx = max(b)
print(all(x >= mx for x in a))
Run Code Online (Sandbox Code Playgroud)
对于成对,您可以使用枚举:
print(all(x >= b[ind] for ind,x in enumerate(a)))
Run Code Online (Sandbox Code Playgroud)
或者使用 hughbothwell 的 zip 想法使用 itertools.zip:
from itertools import izip
print(all(x >= y for x,y in izip(a,b)))
Run Code Online (Sandbox Code Playgroud)
或麻木:
print(np.greater_equal(a,b).all())
print(np.all(a >= b))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4524 次 |
| 最近记录: |