![](/img/trans.png)
[英]Converting a list of strings that corresponds to definition names into a definition lookup dictionary in Python
[英]Converting a list of strings to dictionary
['key=IAfpK', ' age=58', ' key=WNVdi', ' age=64', ' key=jp9zt', ' age=47', ' key=0Sr4C', ' age=68', ' key=CGEqo', ' age=76', ' key=IxKVQ', ' age=79', ' key=eD221', ' age=29']
我得到了以下列表,我需要將其轉換為字典,例如
{"IAfpK":58,"WNVdi":,"64":,.....}
我嘗試過 ast 庫和 JSON.loads 但徒勞無功
使用 dict 理解的簡單單行:
{x.split("=")[1]: int(y.split("=")[1]) for x,y in zip(arr[::2],arr[1::2])}
zip(arr[::2],arr[1::2])
迭代數組對,並且str.split
為鍵和值提取正確的值。
如果您知道您的列表始終遵循這種確切的格式和順序,只需遍歷列表:
mydict = {}
for element in mylist:
if "key=" in element:
mydict[element.replace("key=", "")] = None
else:
mydict[mydict.keys()[-1]] = int(element.replace("age=", ""))
給定一個形狀為[' key=aKey', ' age=valueForAKey', ' key=bKey', ...]
的列表arr
(注意每個列表元素開頭的空格)。
您可以使用此字典理解來提取匹配的鍵和值並構建結果字典。
{arr[i][5:]: arr[i+1][5:] for i in range(0, len(arr), 2)}
在這里試試: https://www.online-python.com/iGI3A2YEnr
如果前導空格的數量不一致(如您給出的示例中),您可以使用lstrip()
方法刪除前導空格。
{arr[i].lstrip()[4:]: arr[i+1].lstrip()[4:] for i in range(0, len(arr), 2)}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.