按数字和字母分隔字典值

问题描述 投票:0回答:1

我试图弄清楚如何获取包含数字和字母的字典值,将数字与字母分开,将数字转换为浮点数,提示用户输入数字,将用户输入添加到数字中值,然后将总和和字母作为字符串返回到字典中。

例如, user_has = {'水': '16oz}

将 16oz 拆分为 16 和 'oz',添加用户输入的 1.3,然后将 '17.3oz' 返回到字典作为键值。

我尝试了在网上找到的几种不同的方法,但似乎没有一个适合我想要做的事情。

python string dictionary split digits
1个回答
0
投票

您可以使用

[0-9]+(?:\.[0-9]*)?
模式表示数字,使用
(?i)[A-Z]
模式表示字母:

import re


def _update(d, key):
    val = d[key]
    digits = float(re.findall(r'[0-9]+(?:\.[0-9]*)?', val)[0])
    letters = ''.join(re.findall(r'(?i)[A-Z]', val))
    get_num = float(input("Enter an amount like 1.3: "))
    d[key] = str(digits + get_num) + letters
    return d


print(_update({'water': '16oz'}, 'water'))

打印

{'水': '17.3oz'}

© www.soinside.com 2019 - 2024. All rights reserved.