FOR循环按列表中的第一个元素排序

2024-10-02 12:37:06 发布

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

我得到以下数据

{'Value': ['A000453', 'Product AB', 5.0]}
{'Value': ['A000201', 'Product UV', 10.0]}
{'Value': ['A000900', 'Product XY', 2.0]}

我可以在循环中输出,如下所示:

for i in x['data']:
    print('Order:', i['Value'][0])
    print('Product:', i['Value'][1])
    print('Amount:', int(i['Value'][2]))

有没有办法按照第一个值对循环中的输出进行排序

最后看起来是这样的:

Order: A000201
Product: Product UV
Amount: 10

Order: A000453
Product: Product AB
Amount: 5

Order: A000900
Product: Product XY
Amount: 2

多谢各位


Tags: 数据infordataabvalueorderproduct
3条回答

您可以通过使用带有自定义键的sort来实现这一点。 例如:

x = [
    {'Value': ['A000453', 'Product AB', 5.0]},
    {'Value': ['A000201', 'Product UV', 10.0]},
    {'Value': ['A000900', 'Product XY', 2.0]}
    ]
x.sort(key= lambda x: x['Value'][0])

for i in x:
    print('Order:', i['Value'][0])
    print('Product:', i['Value'][1])
    print('Amount:', int(i['Value'][2]))

输出将是:

Order: A000201
Product: Product UV
Amount: 10

Order: A000453
Product: Product AB
Amount: 5

Order: A000900
Product: Product XY
Amount: 2

通过这种方式,您可以按第一个元素对列表进行排序:

data.sort(key=lambda x: x['Value'][0])

没有按键功能:

data = [
    {'Value': ['A000453', 'Product AB', 5.0]},
    {'Value': ['A000201', 'Product UV', 10.0]},
    {'Value': ['A000900', 'Product XY', 2.0]},
]

for order, product, amount in sorted(d['Value'] for d in data):
    print('Order:', order)
    print('Product:', product)
    print('Amount:', int(amount))
    print()

相关问题 更多 >

    热门问题