簡體   English   中英

將字符串列表轉換為字典

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM