除了迭代嵌套循环并检查每个值是否等于1之外,Python最常用的方法是什么?
答案 0 :(得分:4)
如果您正在使用numpy
,则可以使用其每元素等式检查,然后调用生成的数组all
方法来检查所有元素是否确实满足条件:
>>> import numpy as np
>>> c = np.array([[1,2], [3,4]])
>>> (c==1).all()
False
>>> c = np.array([[1,1], [1,1]])
>>> (c==1).all()
True
答案 1 :(得分:2)
使用 itertoools.chain 迭代“flattened”列表
all(x == 1 for x in itertools.chain(*my_list))
答案 2 :(得分:0)
生成器函数+ all
可能是要走的路。
array_2D = [[1, 1, 1], [1, 1, 1], [1, 1, 1]]
all(all(item == 1 for item in items) for items in array_2D)
另一个选择是首先展平数组,但python没有标准的方法来做到这一点。但是代码可以处理任何类型的维度(如果你把它弄得很深)!
答案 3 :(得分:0)
使用集合:
from itertools import chain
array = [[1,1,1],[1,0,1]]
if set(chain.from_iterable(array)) == {1}:
print("all ones")
答案 4 :(得分:0)
您可以使用np.searchsorted和np.apply_along_axis来查找任何维数组中的元素。