python学习每日一题【20200302】python实现元素为字典的列表的排序

题目
对下面的list进行排序,要求按照“a”的值进行排序:
[{“a”:11,“b”:2},{“a”:5,“b”:2},{“a”:3,“b”:2},{“a”:9,“b”:12},{“a”:9,“b”:52},{“a”:23,“b”:2},{“a”:10,“b”:2}]

实现方案:冒泡排序
此列表中的各元素比较特殊,都是字典,需要按照字典的第一个键对应的值进行排序。对比元素为list[i][“a”],而排序元素为list[i],看代码:

l1 = [{"a":11,"b":2},{"a":5,"b":2},{"a":3,"b":2},{"a":9,"b":12},{"a":9,"b":52},{"a":23,"b":2},{"a":10,"b":2}]

for m in range(len(l1)):
    for i in range(len(l1)-1):
        if l1[i]["a"] > l1[i+1]["a"]:	#对比元素和排序元素不同。
            l1[i] , l1[i + 1] = l1[i+1] , l1[i]
print(l1)

输出:

[{'a': 3, 'b': 2}, {'a': 5, 'b': 2}, {'a': 9, 'b': 12}, {'a': 9, 'b': 52}, {'a': 10, 'b': 2}, {'a': 11, 'b': 2}, {'a': 23, 'b': 2}]

Process finished with exit code 0
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值