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

如何去除字典字符串值中的度数符号并转换为整数?

去除字典值中的度数符号并转换为整数

问题背景

现有如下字典:

Measurements = {'Kitchen': '22°', 'Master bedroom': '19°', 'Sitting room': '21°', 'Toilet': '24°', 'Guest bedroom': '18°', 'Garage': '15°', 'Outside': '12°'}

需要将其转换为值为整数的新字典:

newDictionary = {'Kitchen': 22, 'Master bedroom': 19, 'Sitting room': 21, 'Toilet': 24, 'Guest bedroom': 18, 'Garage': 15, 'Outside': 12}

尝试执行以下代码时出现错误:

newDictionary = {str(k):int(v) for k,v in measurements.items()}

错误信息:

ValueError: invalid literal for int() with base 10: '22°'

错误原因

int()函数只能转换纯数字组成的字符串,原字典的值包含度数符号°,无法直接转换,必须先去除非数字部分。

解决方案

以下是几种可行的实现方式:

方法1:移除末尾的度数符号

利用rstrip('°')方法移除字符串末尾的度数符号,再转换为整数:

Measurements = {'Kitchen': '22°', 'Master bedroom': '19°', 'Sitting room': '21°', 'Toilet': '24°', 'Guest bedroom': '18°', 'Garage': '15°', 'Outside': '12°'}
newDictionary = {k: int(v.rstrip('°')) for k, v in Measurements.items()}

方法2:提取所有数字字符

使用filter筛选出字符串中的数字字符,拼接后转换为整数,适用于度数符号位置不固定的情况:

newDictionary = {k: int(''.join(filter(str.isdigit, v))) for k, v in Measurements.items()}

方法3:正则表达式匹配数字

通过正则表达式提取字符串中的数字部分,适合处理更复杂的字符串格式:

import re
newDictionary = {k: int(re.search(r'\d+', v).group()) for k, v in Measurements.items()}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 02:30:58