I need to convert string to dictionary in a manner for example
str1 = "00001000-0009efff : a 00100000-656b2fff : b"
Output what I require is
dict1 = {'a':['00001000','0009efff'], 'b':['00100000','656b2fff']}
Note: str1
can have many more such c
, d
, e
with range.
Advertisement
Answer
You can do it with a regex:
import re pattern = r'([w-]+) : ([w.]+)' out = {m[1]: m[0].split('-') for m in re.findall(pattern, str1)}
Explanation of the regex:
- match combination of alphanumeric characters and dashes
[w-]+
- followed by a space, a colon and a space
_:_
- followed by a combination of alphanumeric characters and dot
[w.]+
The groups are catching your relevant infos.