Python for循环输出时如何按列表第一个元素排序
你可以直接在遍历数据源前做排序,无需在循环内部处理,通过Python内置的sorted()函数指定排序键即可实现你要的效果。
修改后的代码如下:
# 按每个元素Value列表的第一个值(订单号)升序排序后遍历 for i in sorted(x['data'], key=lambda item: item['Value'][0]): print('Order:', i['Value'][0]) print('Product:', i['Value'][1]) print('Amount:', int(i['Value'][2])) # 每组输出后加空行,匹配你要求的格式 print()
补充说明
- 默认是升序排序,你的订单号为固定A前缀加数字的字符串格式,Python原生字符串排序规则正好符合
A000201<A000453<A000900的顺序,完全匹配你的预期输出。 - 如果后续需要倒序输出,给
sorted加reverse=True参数即可:sorted(x['data'], key=lambda item: item['Value'][0], reverse=True)
内容的提问来源于stack exchange,提问作者Krupniok
相关产品推荐
相关产品推荐

