python字典按照键和值进行排序

排序首先想到python的sorted()和sort()

sort 与 sorted 区别:
1.sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。
2. list 的 sort 方法返回的是对已经存在的列表进行操作,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。通俗的说,就是sort没有返回值,sorted有返回值。

sorted 语法: sorted(iterable, key=None, reverse=False)

参数说明:

iterable – 可迭代对象。
key – 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序
reverse – 排序规则,reverse = True 降序 , reverse = False 升序(默认)。

因此字典按照键和值进行排序了,也就是在sorted()中的参数key选择键或者值。

import random
testlist=[]
for i in range(20):
    testlist.append(random.randint(81,100))
print(testlist)
zi={}
for x in testlist:
    if x not in zi.keys():
        zi[x]=testlist.count(x)
print("zi:",zi)

# 按照键排序
ll1=sorted(zi.items(),key=lambda kv:(kv[0]))
print(ll1)
#按照值排序
ll2=sorted(zi.items(),key=lambda kv:(kv[1]))
print(ll2)

输出为:

[88, 97, 90, 88, 99, 95, 95, 95, 86, 93, 97, 90, 95, 98, 100, 86, 99, 90, 84, 84]
zi: {88: 2, 97: 2, 90: 3, 99: 2, 95: 4, 86: 2, 93: 1, 98: 1, 100: 1, 84: 2}
[(84, 2), (86, 2), (88, 2), (90, 3), (93, 1), (95, 4), (97, 2), (98, 1), (99, 2), (100, 1)]
[(93, 1), (98, 1), (100, 1), (88, 2), (97, 2), (99, 2), (86, 2), (84, 2), (90, 3), (95, 4)]

1.Python 字典 items() 函数以列表返回可遍历的(键, 值) 元组数组。
2.其中的lambda函数可以参考:python的lambda-map-reduce

字典排序列表

lis = [{ "name" : "Taobao", "age" : 100},  
{ "name" : "Runoob", "age" : 7 }, 
{ "name" : "Google", "age" : 100 }, 
{ "name" : "Wiki" , "age" : 200 }]

lname=sorted(lis,key=lambda kv:kv['name'])
print(lname)
lage=sorted(lis,key=lambda kv:kv['age'])
print(lage)

输出为:

[{'name': 'Google', 'age': 100}, {'name': 'Runoob', 'age': 7}, {'name': 'Taobao', 'age': 100}, {'name': 'Wiki', 'age': 200}]
[{'name': 'Runoob', 'age': 7}, {'name': 'Taobao', 'age': 100}, {'name': 'Google', 'age': 100}, {'name': 'Wiki', 'age': 200}]

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值