Python列表到dict的转换

2024-04-27 00:02:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我得到一个有三个项目的列表作为输入

[{item1},{item2},{item3}]

但每一项都采用以下形式(包括花括号):

^{pr2}$

所以当我打印我的列表时,它看起来是这样的(同样,花括号不是我设置的,而是通过API响应输入时看到的):

[{'key1': 'val1', 'key2': val2, 'key3': val3}, {'key4': 'val4', 'key5': val5, 'key6': val6}, {'key7': 'val7', 'key8': val8, 'key9':val9}]

我想要一个dict,其中每个项中的每个逗号分隔的key-val对都是一个元素。因此:

{'key1': 'val1', key2': val2, 'key3': val3, 'key4': 'val4', 'key5': val5, 'key6': val6, 'key7': 'val7', 'key8': val8, 'key9':val9}

我首先尝试创建一个只包含“item1”的新列表,因此newlist包含[{'key1': 'val1', 'key2': val2, 'key3': val3}]这个新列表的长度据说是3个条目,我想:太好了!现在我可以通过newlist[0]来访问key1-val1对,并用{newlist[0],newlist[1],newlist[2]} to get {'key1': 'val1', 'key2': val2, 'key3': val3}给dict输入数据,但这不起作用。在

有什么建议吗? 我猜花括号是问题所在?我的意思是我在谷歌上找到了各种各样的答案“列表到字典的转换”,但我看到的没有一个是这样的。。。在


Tags: 列表括号key2key1item1key3val1val2
2条回答

你可以用一种理解的方式来整理你的字典列表:

>>> d = [{'key1': 1, 'key2': 2, 'key3': 3}, {'key4': 4, 'key5': 5, 'key6': 6}, {'key7': 7, 'key8': 8, 'key9':9}]
>>> dict(x for y in d for x in y.items())
{'key1': 1, 'key2': 2, 'key3': 3, 'key4': 4, 'key5': 5, 'key6': 6, 'key7': 7, 'key8': 8, 'key9': 9}

然后您就可以轻松地访问任何密钥:

^{pr2}$

查看此帖子:How do I merge a list of dicts into a single dict?

你要找的是:

data = [{'key1': 'val1', 'key2': val2, 'key3': val3}, {'key4': 'val4', 'key5': val5, 'key6': val6}, {'key7': 'val7', 'key8': val8, 'key9':val9}]
res = {}
[ res.update(d) for d in data]

相关问题 更多 >