Python如何优雅检查数组指定索引切片内所有元素是否满足0≤x≤9
解法说明
1. 纯Python原生最优写法
用Python内置的all()函数搭配生成器表达式即可一行完成判断,不需要逐个写索引,也不需要额外引入第三方依赖:
# 所有元素都满足0≤x≤9时返回True,否则返回False if all(0 <= x <= 9 for x in n): print('correct')
all()函数具备短路求值特性:只要遍历到第一个不符合条件的元素就会立刻终止遍历返回False,不需要遍历整个列表,性能优于手动全量遍历。
2. 额外扩展:定位不符合要求的元素
如果需要进一步知道具体哪些索引的元素不满足条件,可以用列表推导式实现:
invalid_indexes = [i for i, num in enumerate(n) if not (0 <= num <=9)] if invalid_indexes: print(f"存在不符合要求的元素,索引为:{invalid_indexes}") else: print('correct')
3. Numpy数组场景可选写法
如果你使用的是Numpy数组,可以用向量化操作实现,适合大规模数据的校验场景:
import numpy as np n_np = np.array(n) if ((n_np >=0) & (n_np <=9)).all(): print('correct')
内容的提问来源于stack exchange,提问作者Steinkreis
相关产品推荐
相关产品推荐

