![](/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.