我的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])
总结
以上就是最近的学习第一部分的内容