类Regex命令python

2024-09-28 19:20:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个短语:I have 10 bla, 50 blo, 10 blu

我想用regex做一个这样的dict:

dictionary = {
    "bla": 10,
    "blo": 50,
    "blu": 10
}

如果我收到短语:I have 50 blo, 5 blu,我就做dict,但是没有键bla。像这样:

dictionary = {
    "blo": 50,
    "blu": 5
}

编辑

  • 不同的格式,如:I want 50 haha, 20 xxx, 17 yI got 10 xxx, 17 hahaha, 3 xxx。你知道吗
  • 需要接受十进制数:30.510,5

Tags: 编辑dictionaryhave格式dictregexxxxgot
1条回答
网友
1楼 · 发布于 2024-09-28 19:20:04

假设输入字符串的格式没有偏差,字典理解和^{}应该可以工作:

d = {k: float(v) for (v,k) in re.findall(r"(\d+) (\w+)", s)}

示例:

import re

s = "I have 10 bla, 50 blo, 10 blu"
d = {k: float(v) for (v,k) in re.findall(r"(\d+) (\w+)", s)}
print(d)  # {'bla': 10.0, 'blo': 50.0, 'blu': 10.0}


s = "I have 50 blo, 5 blu"
d = {k: float(v) for (v,k) in re.findall(r"(\d+) (\w+)", s)}
print(d)  # {'blo': 50.0, 'blu': 5.0}

相关问题 更多 >