python 对输入的单词进行字典排序_Python-对字典进行排序

案例:

某班英语成绩以字典的形式存储为:

{‘lili’:78, ‘jin’:50, ‘liming’: 30, ......}

依据成绩高低,进行学生成绩排名

如何对字典排序?

方法1:

#!/usr/bin/python3

from random import randint

def sort_dict(data):

# 获得字典的key

keys = data.keys()

# 获得字典的value

valus = data.values()

# 按(value,keys)进行zip拼接

data_items = zip(valus, keys)

# 按value进行排序,依据zip函数值的先后顺序,reverse表示列表是否翻转

return sorted(data_items, reverse=True)

if __name__ == '__main__':

# 生成abcdefg学生对应的分数

data = {k: randint(0, 100) for k in 'abcdefg'}

# 获取排名

result = sort_dict(data)

print(result)

方法2:

按key排序

#!/usr/bin/python3

from random import randint

def sort_dict(data):

print(data.items())

# 按key进行排序,reverse 表示列表是否翻转,x[0] 取的是data.items()中对应字典的key值

return sorted(data.items(), key=lambda x: x[0], reverse=True)

if __name__ == '__main__':

# 生成abcdefg各学生对应的分数

data = {k: randint(0, 100) for k in 'abcdefg'}

# 获取排名

result = sort_dict(data)

print(result)

按value排序

#!/usr/bin/python3

from random import randint

def sort_dict(data):

print(data.items())

# 按value进行排序,reverse 表示列表是否翻转,x[0] 取的是data.items()中对应字典的value值

return sorted(data.items(), value=lambda x: x[1], reverse=True)

if __name__ == '__main__':

# 生成abcdefgg各学生对应的分数

data = {k: randint(0, 100) for k in 'abcdefg'}

# 获取排名

result = sort_dict(data)

print(result)

先把字典变成列表中元组形式,然后通过sorted函数,lambda迭代每个列表值,x[0]指向字典key,x[1]指向value,reverse是否反转,默认从小到大

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值