Python - 识别列表中的无关类型
Python - Identifying Extraneous Types within a List
假设我有一个表示数值矩阵的二维列表(不,我没有为此使用 numPy)。此列表中允许的类型属于 numbers.Number 类别。假设我希望隔离此列表中的任何非数值,例如字符串,我能看到的唯一选择是单独检查每个元素并检查它是否不是 numbers.Number:[=13 的实例=]
from numbers import Number
def foo(matrix):
# Check for non-numeric elements in matrix
for row in matrix:
for element in row:
if not isinstance(element, Number):
raise ValueError('The Input Matrix contains a non-numeric value')
...
我的问题是:是否有另一种方法可以在不查看每个元素的情况下将矩阵作为一个整体来检查? Python 或其库之一是否具有用于识别列表(列表)中的无关元素的内置函数?还是我应该继续我提供的当前示例?
试试这个:
print(any(not isinstance(x, Number) for row in matrix for x in row))
并且在函数中:
def foo(matrix):
if any(not isinstance(x, Number) for row in matrix for x in row):
raise ValueError('The Input Matrix contains a non-numeric value')
假设我有一个表示数值矩阵的二维列表(不,我没有为此使用 numPy)。此列表中允许的类型属于 numbers.Number 类别。假设我希望隔离此列表中的任何非数值,例如字符串,我能看到的唯一选择是单独检查每个元素并检查它是否不是 numbers.Number:[=13 的实例=]
from numbers import Number
def foo(matrix):
# Check for non-numeric elements in matrix
for row in matrix:
for element in row:
if not isinstance(element, Number):
raise ValueError('The Input Matrix contains a non-numeric value')
...
我的问题是:是否有另一种方法可以在不查看每个元素的情况下将矩阵作为一个整体来检查? Python 或其库之一是否具有用于识别列表(列表)中的无关元素的内置函数?还是我应该继续我提供的当前示例?
试试这个:
print(any(not isinstance(x, Number) for row in matrix for x in row))
并且在函数中:
def foo(matrix):
if any(not isinstance(x, Number) for row in matrix for x in row):
raise ValueError('The Input Matrix contains a non-numeric value')