1.101
 
描述
参照代码模板完善代码,实现下述功能。输入一个字符串,其中的字符由(英文)逗号隔开,编程将所有字符连成一个字符串,输出显示在屏幕上。
 
输入输出示例
 
 
输入
输出
示例 1
1,2,3,4,5
12345
习题讲解
答案:
ls= input("请输入一个字符串,由逗号隔开每个字符:").split(',')(1)
print(''.join(ls))(2)
要点:
1. 题目要求输入的字符用逗号隔开,所以,需要用到split(',')来从字符串里提取所输入的字符
2. 经过split()函数的字符串,返回的是列表
3. 字符串有个操作函数是 str.join(ls),可以把列表里的各个元素,用str的内容连接起来。本题利用了空字符串‘’,来调用这个函数,因此,达到了所想要的效果:将带有逗号的字符串变换成了没有逗号的字符串。
4. 有一个不可忽视的地方是join()函数的括号里的参数是列表,如果忘了这一点,会犯错
5. 这个功能利用好了,可以拓展,解决其他的问题。
2.102
 
描述
参照代码模板完善代码,实现下述功能。
 
有一个列表 studs 如下:
studs= [{'sid':'103','Chinese': 90,'Math':95,'English':92},{'sid':'101','Chinese': 80,'Math':85,'English':82},{'sid':'102','Chinese': 70,'Math':75,'English':72}]
将列表 studs 的数据内容提取出来,放到一个字典 scores 里,在屏幕上按学号从小到大的顺序显示输出 scores 的内容。内容示例如下:
101:[85, 82, 80]
102:[75, 72, 70]
103:[95, 92, 90]
 
 
输入输出示例
 
 
输入
输出
示例 1
101:[85, 82, 80]
102:[75, 72, 70]
103:[95, 92, 90]
习题讲解
答案:
studs= [{'sid':'103','Chinese': 90,'Math':95,'English':92},{'sid':'101','Chinese': 80,'Math':85,'English':82},{'sid':'102','Chinese': 70,'Math':75,'English':72}]
scores = {}
for stud in studs:
    sv = stud.items()
    v = []请输入一个长度0和5之间的字符串
    for it in sv:
        if it[0] =='sid':
            k = it[1]
        else:
            v.append(it[1])
    scores[k]  = v
# print(scores)
so = list(scores.items())
so.sort(key = lambda x:x[0],reverse = False)
for l in so:
print('{}:{}'.format(l[0],l[1]))
studs= [{'sid':'103','Chinese': 90,'Math':95,'English':92},{'sid':'101','Chinese': 80,'Math':85,'English':82},{'sid':'102','Chinese': 70,'Math':75,'English':72}]
lit=[]
for i in studs:
    lst=[]
    ('sid')
    lst.('Chinese'))
    lst.('Math'))
    lst.('English'))
    lst.sort(reverse=True)
    lat=[]
    lat.append(a+":")
    lat.append(str(lst))
    lit.append(lat)
lit.sort()
for i in lit:
    print("".join(i))
 
要点:
1. 字典作为元素,定义在列表里,用列表的遍历就可以从中提取出来
2. 提取出来的元素直接就是字典,因此可以用 items()直接获取,形成键值对对象集合 sv;
3. 对键值对对象集合sv遍历,就可以以元组it的方式访问其中的每一对键值对,sv = stud.items(),是第一个空的答案;
4. 题目要求提取学生的学号,所以需要比较键it[0]是否是'sid',是则将学号it[1]提取出来作为新的字典scores的键k;不是则将成绩提取出来作为新字典scores的值v;
5. 由于课程是多门,因此新字典scores的值v需要以列表的方式,保存各门课程的成绩,所以在不是的情况下,新字典scores的值v是利用append(it[1])的方式,追加到列表的后面;
6. 对v做append操作,必须要事先定义v是一个空列表;因此需要在对每一条旧字典stud的键值对信息做处理的for it in sv:语句之前,用v = []初始化v为一个空列表;
7. 经过对一条字典stud的处理,就形成一对k和v,所以接下来是给新字典scores添加一条键值对,scores[k]  = v,是第二个空的答案
8. 经过对全部的studs列表里的各条字典处理完之后,新的scores字典就全部生成。
9. 题目要求按学号从小到大的顺序输出学号和成绩,所以需要对字典的键值对内容items()提取到列表so里,此处是第三个空的答案:so = list(scores.items())
10. 用Lambda函数进行排序。这个不在考试范围里,所以代码模板直接给出语句;
11. 对排好序的列表输出每组列表,这个直接给出语句,不再赘述。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。