将Python列表转换为字典

时间:2015-08-20 23:23:35

标签: python list dictionary

我有这样的清单:

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"}
}

有没有解决办法?

2 个答案:

答案 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