Python - 使用包含键的列表从字符串中创建字典

标签 python list dictionary

像这样:

keys = ["Name:", "Date:", "Time:sec:", "Room"]
string = "Name:BobDate:1/3Time:sec:3:00:00RoomA1"

我怎样才能得到像这样的字典:

dict1 = {"Name" : "Bob", "Date" : "1/3", "Time:sec" : "3:00:00", "Room" : "A1"}

删除冒号是可选的。 我可以完全使用 re.split().join()map() 从字符串中删除键,但我想要而是创建字典。

最佳答案

只是一种正则表达式方式...

dict(zip(keys, re.match('(.*)'.join(keys + [""]), string).groups()))

演示:

>>> if 1:
    import re
    keys = ["Name:", "Date:", "Time:sec:", "Room"]
    string = "Name:BobDate:1/3Time:sec:3:00:00RoomA1"
    dict(zip(keys, re.match('(.*)'.join(keys + [""]), string).groups()))

{'Name:': 'Bob', 'Date:': '1/3', 'Time:sec:': '3:00:00', 'Room': 'A1'}

关于Python - 使用包含键的列表从字符串中创建字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48101278/

相关文章:

python - Qt : setData method in a QAbstractItemModel

python - 获取区域包围的第一个和最后一个值的索引

python - python 中的赋值 "="行为?

python map 对象位于

c# - wpf 图像资源和在运行时在 wpf 控件中更改图像

python - 如何使用 Python 和 Zappa 获取 AWS Lambda 剩余时间?

python - PyGame - 创建新图像后图像停止移动

java - 反转列表中元素的顺序

python - 合并字典中具有公共(public)元素的列表

python - 递归访问字典和修改