我有一个字典列表,其中包含以下格式的信息:
p_mat_list = [
{'name': 'Mirror', 'link': '/somelink1/'},
{'name': 'Gold Leaf', 'link': '/somelink2/'}
]
首先,创建包含所有名称值的python列表:
^{pr2}$但是,我不知道当列表中有嵌套列表和字典时,获取所有名称值的最佳方法是什么,如下所示:
p_mat_list = [
[{'name': 'Painted'}, {'name': 'Wood'}],
{'name': 'Mirror'},
{'name': 'Gold Leaf'}
]
如何获得所有这些名称值:Painted
,Wood
,Mirror
,Gold Leaf
?在
另外,我如何将每个嵌套列表中所有字典中的名称值合并为一个值,然后将其与其他值一起放入列表中,从而得到这些值:Painted Wood、Mirror、Gold Leaf。在
不会有嵌套更多级别的列表,并且其中不超过两个字典,因此,例如,从下面的列表中,需要获取这些值: 彩木,镜子,上漆木,金箔。在
p_mat_list = [
[{'name': 'Painted'}, {'name': 'Wood'}],
{'name': 'Mirror'},
[{'name': 'Varnished'}, {'name': 'Wood'}],
{'name': 'Gold Leaf'}
]
如果您愿意引入外部库,那么可以使用more-itertools中的^{} function 。像这样使用它:
然后在您的例子中,您只需从每个dict中提取与
^{pr2}$'name'
相对应的值,而不是列出它们的列表。在这样做的好处是您不必担心列表嵌套有多少层。在
最好的方法是将复杂的列表展平,您有这样一个函数:
此函数以您的
^{pr2}$p_mat_list
作为参数并返回一个字典列表。在您的
product_materials
列表:相关问题 更多 >
编程相关推荐