有时我们需要按照字典数据的键值对进行排序,这个时候就可以用到sorted函数。
import operator
dic={"testA":3,"testC":1,"testB":4,"testD":2}
dicn=sorted(dic.items(),key=operator.itemgetter(0))
print(dicn)
比如我们要对dic里面的内容进行排序
如果要key值排序,写0。
如果value值排序,写1
1、程序按key排序
dicn=sorted(dic.items(),key=operator.itemgetter(0))
输出结果:
[('testA', 3), ('testB', 4), ('testC', 1), ('testD', 2)]
2、程序按value排序
dicn=sorted(dic.items(),key=operator.itemgetter(1))
输出结果:
[('testC', 1), ('testD', 2), ('testA', 3), ('testB', 4)]
3、程序按指定的value排序
dic2=[{"testA":"d:\rr\tt","num":3},{"testC":"d:\rr1\tt","num":1},{"testB":"d:\rr2\tt","num":2}]
dicn=sorted(dic2,key=operator.itemgetter("num"))
print(dicn)
如dic2按照num数值的大小排序
输出结果:
[{'testA': 'd:\rr1\tt', 'num': 1}, {'testA': 'd:\rr2\tt', 'num': 2}, {'testA': 'd:\rr\tt', 'num': 3}]
打印出dicn的内容
for i in range(0,3):print(dicn[i])
输出结果:
{'testC': 'd:\rr1\tt', 'num': 1}
{'testB': 'd:\rr2\tt', 'num': 2}
{'testA': 'd:\rr\tt', 'num': 3}
接着打印出dicn里面每个列表的每个键内容:
for i in range(0,3):print(dicn[i])for content in dicn[i]:print(content)
输出结果:
{'testC': 'd:\rr1\tt', 'num': 1}
testC
num
{'testB': 'd:\rr2\tt', 'num': 2}
testB
num
{'testA': 'd:\rr\tt', 'num': 3}
testA
num
接着打印出dicn里面每个列表的第一个键值对内容:
for i in range(0,3):print(dicn[i])n=0for content in dicn[i].items():if n==0:print(content)n=n+1
运行结果:
{'testC': 'd:\rr1\tt', 'num': 1}
('testC', 'd:\rr1\tt')
{'testB': 'd:\rr2\tt', 'num': 2}
('testB', 'd:\rr2\tt')
{'testA': 'd:\rr\tt', 'num': 3}
('testA', 'd:\rr\tt')
打印出每个子列第一个表键值对内容
for i in range(0,3):print(dicn[i])n=0for content in dicn[i].items():if n==0:print(content[0])print(content[1])n=n+1
运行结果:
{'testC': 'd:\\rr1\\tt', 'num': 1}
testC
d:\rr1\tt
{'testB': 'd:\\rr2\\tt', 'num': 2}
testB
d:\rr2\tt
{'testA': 'd:\\rr\\tt', 'num': 3}
testA
d:\rr\ttProcess finished with exit code 0
愿每个测试都能顺利转为测试开发,提高职业技能,成为前1%的存在,为公司节约更多的成本,为社会创造更大的价值,为自己和家庭谋求更高的收入,所有人不受职业年龄限制,越老越吃香,直至财富自由;愿测试技术越来越进步,测试效率提高,软件质量不断提高。愿祖国更加美好,人民更加幸福。多喜乐,常安宁。