使用sorted对字典排序

有时我们需要按照字典数据的键值对进行排序,这个时候就可以用到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=0
    for 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=0
    for 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\tt

Process finished with exit code 0

愿每个测试都能顺利转为测试开发,提高职业技能,成为前1%的存在,为公司节约更多的成本,为社会创造更大的价值,为自己和家庭谋求更高的收入,所有人不受职业年龄限制,越老越吃香,直至财富自由;愿测试技术越来越进步,测试效率提高,软件质量不断提高。愿祖国更加美好,人民更加幸福。多喜乐,常安宁。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值