Python。如何按lis值对dict的元组进行排序

2024-09-29 19:26:47 发布

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

元组中有一些dict:

a = ({'row_n': 1, 'row_section': None, 'TM': 'FORD', 'article': 'F5OZ5311CA', 'description': '', 'size_measures_multi': {'unit': None, 'additional_field': None, 'size': ['1', '2', '1374,13']}},
{'row_n': 2, 'row_section': None, 'TM': 'FORD', 'article': 'FOVY7E395B', 'description': '', 'size_measures_multi': {'unit': None, 'additional_field': None, 'size': ['1', '3', '824,48']}}
{'row_n': 3, 'row_section': None, 'TM': 'FORD', 'article': 'RH170', 'description': '', 'size_measures_multi': {'unit': None, 'additional_field': None, 'size': ['1', '5', '412,24']}})

我需要按['size\u measures\u multi'][size]对这个dicts排序,并给出如下结果:

a = ({'row_n': 1, 'row_section': None, 'TM': 'FORD', 'article': 'F5OZ5311CA', 'description': '', 'size_measures_multi': {'unit': None, 'additional_field': None, 'size': ['1', '2', '1374,13']}},
{'row_n': 2, 'row_section': None, 'TM': 'FORD', 'article': 'FOVY7E395B', 'description': '', 'size_measures_multi': {'unit': None, 'additional_field': None, 'size': ['1', '3', '824,48']}}
{'row_n': 3, 'row_section': None, 'TM': 'FORD', 'article': 'RH170', 'description': '', 'size_measures_multi': {'unit': None, 'additional_field': None, 'size': ['1', '5', '412,24']}})

我试试这个

for i in a:
    {x: sorted(i['size_measures_multi']['size']) for x in i.keys()}

但它给了我坏结果。你知道吗

我该怎么做。我将非常感谢你的帮助。你知道吗


Tags: nonefieldsizearticleunitsectiondescriptionmulti
1条回答
网友
1楼 · 发布于 2024-09-29 19:26:47

只需使用sorted的关键参数:

a = ({'row_n': 1, 'row_section': None, 'TM': 'FORD', 'article': 'F5OZ5311CA', 'description': '', 'size_measures_multi': {'unit': None, 'additional_field': None, 'size': ['1', '2', '1374,13']}},
{'row_n': 2, 'row_section': None, 'TM': 'FORD', 'article': 'FOVY7E395B', 'description': '', 'size_measures_multi': {'unit': None, 'additional_field': None, 'size': ['1', '3', '824,48']}},
{'row_n': 3, 'row_section': None, 'TM': 'FORD', 'article': 'RH170', 'description': '', 'size_measures_multi': {'unit': None, 'additional_field': None, 'size': ['1', '5', '412,24']}})

result = sorted(a, key=lambda d: tuple(d['size_measures_multi']['size']))

for e in result:
    print(e)

输出

{'row_n': 1, 'row_section': None, 'TM': 'FORD', 'article': 'F5OZ5311CA', 'description': '', 'size_measures_multi': {'unit': None, 'additional_field': None, 'size': ['1', '2', '1374,13']}}
{'row_n': 2, 'row_section': None, 'TM': 'FORD', 'article': 'FOVY7E395B', 'description': '', 'size_measures_multi': {'unit': None, 'additional_field': None, 'size': ['1', '3', '824,48']}}
{'row_n': 3, 'row_section': None, 'TM': 'FORD', 'article': 'RH170', 'description': '', 'size_measures_multi': {'unit': None, 'additional_field': None, 'size': ['1', '5', '412,24']}}

相关问题 更多 >

    热门问题