今天在做后端接口的时候遇到一个问题,就是对多个字典按指定的key值排序
举个例子:
r1 = {'num': 1, 'value': 12}
r2 = {'num': 2, 'value': 3}
r3 = {'num': 3, 'value': 35}
r4 = {'num': 4, 'value': 67}
r5 = {'num': 5, 'value': 11}
r6 = {'num': 6, 'value': 17}
r7 = {'num': 7, 'value': 6}
r8 = {'num': 8, 'value': 88}
r9 = {'num': 9, 'value': 19}
r10 = {'num': 10, 'value': 21}
有这么10个字典,我们需要根据value值对它们排个序(升序 or 降序)
先把它们放入一个列表,然后对列表调用sort方法
代码如下:
import operator #要导入operator这个东西
r1 = {'num': 1, 'value': 12}
r2 = {'num': 2, 'value': 3}
r3 = {'num': 3, 'value': 35}
r4 = {'num': 4, 'value': 67}
r5 = {'num': 5, 'value': 11}
r6 = {'num': 6, 'value': 17}
r7 = {'num': 7, 'value': 6}
r8 = {'num': 8, 'value': 88}
r9 = {'num': 9, 'value': 19}
r10 = {'num': 10, 'value': 21}
t=[r1,r2,r3,r4,r5,r6,r7,r8,r9,r10]
t.sort(key=operator.itemgetter('value'), reverse = True) # 默认为升序, reverse=True为降序
print(t)
输出结果如下:
[{'num': 8, 'value': 88}, {'num': 4, 'value': 67}, {'num': 3, 'value': 35}, {'num': 10, 'value': 21}, {'num': 9, 'value': 19}, {'num': 6, 'value': 17}, {'num': 1, 'value': 12}, {'num': 5, 'value': 11}, {'num': 7, 'value': 6}, {'num': 2, 'value': 3}]
python中sort方法应该是有很多的用法,非常的灵活。