我正在检查python中的列表是否仅包含数字数据。对于简单的int和float,我可以使用以下代码:
if all(isinstance(x, (int, float)) for x in lstA):
是否有简单的方法来检查是否另一个列表嵌入在第一个列表也包含数字数据?
可以对列表中的所有列表进行递归检查,如下所示
def is_all_numeric(lst):
for elem in lst:
if isinstance(elem, list):
if not is_all_numeric(elem):
return False
elif not isinstance(elem, (int, float)):
return False
return True
print(is_all_numeric([1,2,3]))
>>> True
print(is_all_numeric([1,2,'a']))
>>> False
print(is_all_numeric([1,2,[1,2,3]]))
>>> True
print(is_all_numeric([1,2,[1,2,'a']]))
>>> False
我不知道是否有其他方法可以做到这一点,但你可以为每个项目做一个for循环,如果这些项目中有任何不是数字,只需将bool设置为false:
numbers = [1,2,3,4,5,6,7,8]
allListIsNumber = True
for i in numbers:
if i.isnumeric() == False:
allListIsNumber = False
您可以使用isnumeric()
或isinstance()