像这样:
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/