【问题标题】:Convert Python list into dictionary将 Python 列表转换为字典
【发布时间】:2015-11-14 18:59:21
【问题描述】:

我有这样的清单:

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

有什么解决办法吗?

【问题讨论】:

  • 那是一套字典。
  • 那不是字典。字典有键,否则没有意义。你的钥匙是什么?
  • 谢谢比尔,您的指正,因为我是python新手,所以我的键是:名字,姓氏和地址。
  • 如果您确切地告诉我们您要做什么,也许会有所帮助。
  • 如果您希望将 name 的 value 转换为 key 并将 value 的 value 转换为 value ,您可以这样做。示例: mydict = { 'fname1': 'ardian', 'fname2': febri', 'frm3': 'jalan ciwaruga' } 通过这样做 { x.keys()[0]: x[x.keys()[ 0]] 对于我列表中的 x }

标签: python list dictionary


【解决方案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'}

但是,第二个字典就像一个列表,所以我不知道你为什么想要它。这将是非常多余的,除非您需要为此目的特定的东西......

【讨论】:

  • 这正是我的意思,第二个。但是如果我想要键不是整数而是字符串怎么办?
  • 你能改写一下吗?我不明白你的意思?
【解决方案2】:

你可以这样做:

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

【讨论】:

    猜你喜欢
    • 2015-07-23
    • 1970-01-01
    • 2016-10-25
    • 2022-12-04
    • 2011-11-18
    • 2022-08-16
    • 2019-02-10
    • 1970-01-01
    • 2011-12-08
    相关资源
    最近更新 更多