python如何提取字典里的数字

python如何提取字典里的数字

作者:Rhett Bai发布时间:2026-01-14阅读时长:0 分钟阅读次数:5

用户关注问题

Q
怎样从字典中筛选出所有的数字类型值?

如何编写Python代码来遍历字典,并找出所有属于数字类型(如整数或浮点数)的值?

A

使用循环和类型检查提取数字

可以通过遍历字典的键值对,使用内置的isinstance()函数检查值是否为数字类型(int或float),然后将符合条件的值提取出来。示例代码:

numbers = [v for v in my_dict.values() if isinstance(v, (int, float))]
Q
如何从字典中提取字符串中的数字?

如果字典的值是字符串,且字符串中包含数字字符,怎样才能提取出这些数字?

A

利用正则表达式提取字符串内数字

可以使用Python的re模块,通过正则表达式查找字符串中的数字部分。示例代码:

import re

numbers_in_strings = []
for v in my_dict.values():
    if isinstance(v, str):
        nums = re.findall(r'\d+', v)
        numbers_in_strings.extend(nums)
Q
怎样提取嵌套字典中的所有数字?

如果字典的值中还包含字典或列表等复杂结构,如何递归提取所有嵌套结构中的数字?

A

递归遍历复杂结构提取数字

定义一个递归函数,判断当前元素类型。如果是数字则保存,如果是字典就遍历其键值对,如果是列表则遍历元素。示例代码:

def extract_numbers(obj):
    result = []
    if isinstance(obj, (int, float)):
        result.append(obj)
    elif isinstance(obj, dict):
        for v in obj.values():
            result.extend(extract_numbers(v))
    elif isinstance(obj, list):
        for item in obj:
            result.extend(extract_numbers(item))
    return result

numbers = extract_numbers(my_dict)