题目
对下面的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