我需要以某種方式將字串轉換為字典
str1 = "00001000-0009efff : a 00100000-656b2fff : b"
輸出我需要的是
dict1 = {'a':['00001000','0009efff'], 'b':['00100000','656b2fff']}
注意:str1可以有更多這樣c的 , d,e范圍。
uj5u.com熱心網友回復:
您可以使用正則運算式來做到這一點:
import re
pattern = r'([\w\-] ) : ([\w\.] )'
out = {m[1]: m[0].split('-') for m in re.findall(pattern, str1)}
正則運算式的解釋:
- 匹配字母數字字符和破折號的組合
[\w-] - 后跟一個空格、一個冒號和一個空格
_:_ - 后跟一個字符
[a-z]
這些小組正在捕捉您的相關資訊。
uj5u.com熱心網友回復:
假設每個值只有一個鍵字母
str1 = str1.replace(" : ", ":").split(" ")
output = {}
for _, s in enumerate(str1):
output[s[-1]] = s[:-2].split("-")
uj5u.com熱心網友回復:
此代碼通常可以作業
str1 = "00001000-0009efff : a 00100000-656b2fff : b"
needed_dictionary = dict()
split_string = str1.split()
for i in range(len(split_string)):
if split_string[i] == ":":
needed_dictionary[split_string[i 1]]= split_string[i-1].split("-")
print(needed_dictionary)
但是如果值或鍵中有“-”或“:”,那么這將失敗。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/470724.html
