
python如何提取字典里的数字
用户关注问题
怎样从字典中筛选出所有的数字类型值?
如何编写Python代码来遍历字典,并找出所有属于数字类型(如整数或浮点数)的值?
使用循环和类型检查提取数字
可以通过遍历字典的键值对,使用内置的isinstance()函数检查值是否为数字类型(int或float),然后将符合条件的值提取出来。示例代码:
numbers = [v for v in my_dict.values() if isinstance(v, (int, float))]
如何从字典中提取字符串中的数字?
如果字典的值是字符串,且字符串中包含数字字符,怎样才能提取出这些数字?
利用正则表达式提取字符串内数字
可以使用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)
怎样提取嵌套字典中的所有数字?
如果字典的值中还包含字典或列表等复杂结构,如何递归提取所有嵌套结构中的数字?
递归遍历复杂结构提取数字
定义一个递归函数,判断当前元素类型。如果是数字则保存,如果是字典就遍历其键值对,如果是列表则遍历元素。示例代码:
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)