python - 如何以必须从同一字符串中提取键和值的方式将字符串转换为字典

标签 python string list dictionary

我需要以某种方式将字符串转换为字典

str1 = "00001000-0009efff : a 00100000-656b2fff : b"

输出我需要的是

dict1 = {'a':['00001000','0009efff'], 'b':['00100000','656b2fff']}

注意:str1 可以有更多,例如带有范围的 cde

最佳答案

您可以使用正则表达式来做到这一点:

import re

pattern = r'([\w\-]+) : ([\w\.]+)'
out = {m[1]: m[0].split('-') for m in re.findall(pattern, str1)}

正则表达式的解释:

  • 匹配字母数字字符和破折号的组合[\w-]+
  • 后跟一个空格、一个冒号和一个空格_:_
  • 后跟字母数字字符和点的组合[\w\.]+

这些群组正在获取您的相关信息。

关于python - 如何以必须从同一字符串中提取键和值的方式将字符串转换为字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72151665/

相关文章:

python - django 生产服务器 - Django 未在 500 错误情况下向 ADMINS 发送邮件

python - 限速 Python 中的无限 While 循环

c - 从字符串中删除一个字符

c# - 按类的字符串字段对列表进行排序

python - 在 Windows 上的 Python 3.5 上安装 Django-channels 时出错

python : Split string every three words

java - 从数学表达式字符串中提取数字

python - Polars - 用其他列的值替换列中的部分字符串

java - 我可以展平多深度自引用实体吗?

python - 与空列表比较时使用 "=="运算符是否错误?