use*_*587 1 python regex dictionary python-3.x
给定以下字典,如何返回从键中去除所有非数字的新键?
import re
dict {'abc_12': 5, 'abc_1': 7, 'abc_34': 10}
for k in dict:
re.sub('[^0-9]', '', k)
# change value of first key to '12': 5
Run Code Online (Sandbox Code Playgroud)
如果我理解正确的话,您想用新的字典键替换实际的字典键,并删除所有非数字字符。
最简单的方法就是创建一个新字典:
new_dict = {re.sub('[^0-9]', '', k): v for k, v in my_dict.items()}
Run Code Online (Sandbox Code Playgroud)
但是,如果由于某种原因您绝对需要保留现有值,则需要为pop每个值插入一个带有现有值的新键。您需要确保您正在操作键的静态副本,否则迭代将包含您插入的新值,并且您会遇到各种麻烦。
for k in list(dict.keys()):
v = my_dict.pop(k)
new_k = re.sub('[^0-9]', '', k)
my_dict[new_k] = v
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1886 次 |
| 最近记录: |