我的python旅程——字典work

我的python旅程——字典work



学生成绩排序

假设字典 dic_score 存放了学生的成绩,dic_score = {“LiGang”: 93, “ChenJing”: 78, “ZhangJinzhu”: 88, “ZhaoQishan”: 91, “LiXin”: 65, “HuangNing”: 83}。试编写程序,按成绩从高到低的顺序输出学生的姓名。


提示:以下是本篇文章正文内容,下面案例可供参考

一、解法一

dic_score = {"LiGang": 93, "ChenJing": 78, "ZhangJinzhu": 88, "ZhaoQishan": 91, "LiXin": 65, "HuangNing": 83}
dict=sorted(dic_score,key=dic_score.__getitem__,reverse=True)
print(dict)

在这里插入图片描述

解析字典相关知识

二、解法二

1.解答

dic_score = {"LiGang": 93, "ChenJing": 78, "ZhangJinzhu": 88, "ZhaoQishan": 91, "LiXin": 65, "HuangNing": 83}
dic1 = dict(sorted(dic_score.items(), key=lambda dic: dic[1],reverse=True))
for key in dic1.keys():
    print(key)

LiGang
ZhaoQishan
ZhangJinzhu
HuangNing
ChenJing
LiXin

2.知识答疑

1)善用sorted函数:

sorted(iterable, key=None, reverse=False默认升序)

用法:对所有可迭代的对象进行排序操作,默认升序。
返回列表。

key – 主要是用来进行比较的元素,指定可迭代对象中的一个元素来进行排序。
reverse – 排序规则:True 降序 , False 升序(默认)。
dic–‘0’——键,‘1’——值

2)例题

1. 按键排序:输出键值对、键、值
dic= {1: 'E', 3: 'C',  2: 'B',4: 'D', 5: 'A'}
····1.1 输出键(列表形式)
a = sorted(dic.keys()) 
print(a)

[1, 2, 3, 4, 5]

····1.2 输出值
b = []
for key in sorted(dic):
   b.append(dic[key])
print(b)

[‘E’, ‘D’, ‘C’, ‘B’, ‘A’]

b1 = sorted(dic.items(), key = lambda dic:dic[0])
b2 = []
for i in b1:
    b2.append(i[1])
print(b2)

[‘E’, ‘D’, ‘C’, ‘B’, ‘A’]

····1.3 按键排序:输出键值对,元组列表 形式
c = sorted(dic.items())
print(c)

[(1, ‘E’), (2, ‘D’), (3, ‘C’), (4, ‘B’), (5, ‘A’)]

····1.4 按键排序:输出键值对,字典 形式
d = {}
for key in sorted(dic):
    d[key]=dic[key]
print(d)

{1: ‘E’, 2: ‘D’, 3: ‘C’, 4: ‘B’, 5: ‘A’}

2 按值排序:输出键值对、键、值
dic = {1: 'E', 3: 'C',  2: 'D',4: 'B', 5: 'A'}
····2.1 输出键,#元组列表形式
e = sorted(dic.items(), key = lambda dic:dic[1])
e1 = []
for i in e:
    e1.append(i[0])
print(e1)

[5, 4, 3, 2, 1]

····2.2 输出值
f = sorted(dic.values())
print(f)

[‘A’, ‘B’, ‘C’, ‘D’, ‘E’]

····2.3 输出键值对(元组列表 形式)
g = sorted(dic.items(), key = lambda dic:dic[1])
print(g)

[(5, ‘A’), (4, ‘B’), (3, ‘C’), (2, ‘D’), (1, ‘E’)]

····2.4 输出键值对(字典 形式)
h = sorted(dic.items(), key = lambda dic:dic[1])
h1 = {}
for i in h:
    h1[i[0]] = i[1]
print(h1)

{5: ‘A’, 4: ‘B’, 3: ‘C’, 2: ‘D’, 1: ‘E’}


三、解法三

dic_score = {"LiGang": 93, "ChenJing": 78, "ZhangJinzhu": 88, "ZhaoQishan": 91, "LiXin": 65, "HuangNing": 83}
a = sorted(dic_score.items(),key=lambda x: x[1],reverse=True)
a = dict(a)
print(a.keys())

四、解法四

dic_score = {"LiGang": 93, "ChenJing": 78, "ZhangJinZhu": 88,
             "ZhaoQishan": 91, "LiXin": 65, "HuangNing": 83}
s_name = dic_score.keys()
s_score = dic_score.values()
dic = zip(s_score, s_name)
for x in sorted(dic, reverse=True):
    print(x[1])

五、解法五

dic_score = {"LiGang": 93, "ChenJing": 78, "ZhangJinzhu": 88, "ZhaoQishan": 91, "LiXin": 65, "HuangNing": 83}
lst_n = list(dic_score.keys())
lst_s = list(dic_score.values())
dic = zip(lst_s, lst_n)
for item in sorted(dic, reverse=True):
    print(item[1])

总结

以上就是最近的学习第一部分的内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值