如何从字典值的字符串内容中提取多个数字的最小值
错误原因
你当前的代码没有实现最小值对比逻辑,只是在遍历数字时每次都将exp_min覆盖为当前遍历到的数字,最终只会保留最后一个匹配到的数字8,和需求完全不符。
修正方案
直接调用Python内置的min()函数取提取到的数字列表的最小值即可,修正后代码如下:
import re sample_dict = {'job_exp': ('3yrs', '5 years', 'Experience range 7-8 Years')} # 拼接所有字符串后提取数字转为整数列表 all_nums = list(map(int, re.findall(r"\d+", "".join(sample_dict["job_exp"])))) # 取列表最小值 exp_min = min(all_nums) print(exp_min)
运行上述代码会输出预期结果3。
如果你需要手动用循环实现最小值计算,可以使用如下写法:
import re sample_dict = {'job_exp': ('3yrs', '5 years', 'Experience range 7-8 Years')} all_nums = list(map(int, re.findall(r"\d+", "".join(sample_dict["job_exp"])))) # 初始化最小值为列表第一个元素 exp_min = all_nums[0] for num in all_nums: # 只有当前数字比已记录的最小值更小才更新 if num < exp_min: exp_min = num print(exp_min)
内容的提问来源于stack exchange,提问作者Sandeep Singh
相关产品推荐
相关产品推荐

