gpt4 book ai didi

python - 在Python中解析带有嵌套列表的字典列表中的值

转载 作者:行者123 更新时间:2023-11-30 22:42:30 24 4
gpt4 key购买 nike

我有一个包含以下格式信息的词典列表:

p_mat_list = [
{'name': 'Mirror', 'link': '/somelink1/'},
{'name': 'Gold Leaf', 'link': '/somelink2/'}
]

首先,创建包含所有名称值的 python 列表:

product_materials = []
for material in p_mat_list:
product_materials.append(material['name'])

但是,当列表具有带有字典的嵌套列表时,我不知道获取所有名称值的最佳方法是什么,如下所示:

p_mat_list = [
[{'name': 'Painted'}, {'name': 'Wood'}],
{'name': 'Mirror'},
{'name': 'Gold Leaf'}
]

如何获取所有这些名称值:PaintedWoodMirrorGold Leaf

此外,我如何才能将每个嵌套列表内的所有字典中的名称值合并为一个值,然后将其与其他值一起放入列表中,这样就会得到这样的值:Painted Wood、Mirror、Gold Leaf。

不会有嵌套更多级别的列表,并且其中不会有超过两个字典,因此例如从下面的列表中需要获取这样的值:彩绘木材、镜子、清漆木材、金箔。

p_mat_list = [
[{'name': 'Painted'}, {'name': 'Wood'}],
{'name': 'Mirror'},
[{'name': 'Varnished'}, {'name': 'Wood'}],
{'name': 'Gold Leaf'}
]

最佳答案

如果您愿意引入外部库,您可以使用 collapse() function来自more-itertools 。像这样使用它:

import more_itertools as mt
list(mt.collapse(p_mat_list, base_type=dict))
[{'name': 'Painted'},
{'name': 'Wood'},
{'name': 'Mirror'},
{'name': 'Gold Leaf'}]

然后,在您的情况下,您可以从每个字典中提取与 'name' 对应的值,而不是制作它们的列表。

>>> [d['name'] for d in mt.collapse(p_mat_list, base_type=dict)]

这样做的好处是您不必担心列表嵌套有多少层。

关于python - 在Python中解析带有嵌套列表的字典列表中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42102473/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com