You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何检查Python列表及嵌套列表是否仅包含数值型数据?

检查嵌套列表是否仅包含数值型数据的简便方法

你可以通过递归遍历的方式处理嵌套列表的场景,以下是两种简洁的实现方案:

方法1:递归遍历判断

def all_numeric(lst):
    for item in lst:
        if isinstance(item, list):
            # 遇到嵌套列表,递归检查内部元素
            if not all_numeric(item):
                return False
        elif not isinstance(item, (int, float)):
            # 非列表元素,直接判断是否为数值类型
            return False
    return True

测试示例

  • 全数值嵌套列表:all_numeric([1, 2.5, [3, 4.0]]) → 返回 True
  • 包含非数值元素:all_numeric([1, "a", [2]]) → 返回 False
  • 多层嵌套结构:all_numeric([[1, [2.3]], 5]) → 返回 True

方法2:结合all()的紧凑递归实现

利用生成器表达式和递归简化代码逻辑,写法更简洁:

def is_numeric(item):
    if isinstance(item, list):
        return all(is_numeric(subitem) for subitem in item)
    return isinstance(item, (int, float))

调用方式:is_numeric(your_nested_list),返回布尔值表示列表是否仅包含数值类型元素。

扩展说明

如果需要支持numpy数值类型(如numpy.int64、numpy.float64),可以扩展判断条件:

import numpy as np

def is_numeric(item):
    if isinstance(item, list):
        return all(is_numeric(subitem) for subitem in item)
    return isinstance(item, (int, float, np.number))

内容的提问来源于stack exchange,提问作者Pete Howells

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 14:10:29