我有这样的清单:
mylist = [
{"name":"fname1","value":"ardian"},
{"name":"frm2","value":"febri"},
{"name":"frm3","value":"jalan ciwaruga"}
]
我希望这个列表转换成这样的字典:
mydict = {
{"name":"fname1","value":"ardian"},
{"name":"frm2","value":"febri"},
{"name":"frm3","value":"jalan ciwaruga"}
}
有没有解决办法?
答案 0 :(得分:1)
我想我知道你想做什么。
这样做:
mydict = {}
for dic in mylist:
mydict.update( { dic['name']:dic['value'] } )
将您的列表转换为:
mydict = {
'fname1':'ardian',
'frm2':'febri',
'frm3':'jalan ciwaruga'
}
如果要使用列表索引转换为密钥,请执行以下操作:
mydict = {}
for i in range(len(mylist)):
mydict.update({ i:mylist[i] })
将您的列表转换为:
mydict = {
0:{"name":"fname1","value":"ardian"},
1:{"name":"frm2","value":"febri"},
2:{"name":"frm3","value":"jalan ciwaruga"}
}
希望这有帮助!如果我解决了错误的问题,你能解释一下你需要解决的问题吗?
修改强> 要访问每种字典,请执行以下操作:
#For the first dictionary
mydict['fname1'] # --> 'ardian'
mydict['frm2'] # --> 'febri'
mydict['frm3'] # --> 'jalan ciwargua'
#For the second dictionary
mydict[0] # --> {'name':'fname1', 'value':'ardian'}
mydict[1] # --> {'name':'frm2', 'value':'febri'}
mydict[2] # --> {'name':'frm3', 'value':'jalan ciwargua'}
但是,第二个词典的行为就像一个列表,所以我不知道你为什么会这样做。这将是多余的,除非你需要一些特定的东西......
答案 1 :(得分:0)
你可以这样做:
mylist = [
{"name":"fname1","value":"ardian"},
{"name":"frm2","value":"febri"},
{"name":"frm3","value":"jalan ciwaruga"}
]
mydict = dict(enumerate(mylist))
给出:
{
0: {'name': 'fname1', 'value': 'ardian'},
1: {'name': 'frm2', 'value': 'febri'},
2: {'name': 'frm3', 'value': 'jalan ciwaruga'}
}
或者如果你想要字符串键:
mydict = dict((str(i), d) for i,d in enumerate(mylist))
给出:
{
'0': {'name': 'fname1', 'value': 'ardian'},
'1': {'name': 'frm2', 'value': 'febri'},
'2': {'name': 'frm3', 'value': 'jalan ciwaruga'}
}
enumerate
[1]和dict
[2]的文档可以帮助解释发生了什么!
[1] https://docs.python.org/2/library/functions.html#enumerate
[2] https://docs.python.org/2/library/functions.html#func-dict