1.101
描述
参照代码模板完善代码,实现下述功能。输入一个字符串,其中的字符由(英文)逗号隔开,编程将所有字符连成一个字符串,输出显示在屏幕上。
输入输出示例
输入 输出
示例 1 1,2,3,4,5 12345
习题讲解
答案:
ls= input("请输入一个字符串,由逗号隔开每个字符:").split(',')(1)
print(''.join(ls))(2)
要点:
- 题目要求输入的字符用逗号隔开,所以,需要用到split(’,’)来从字符串里提取所输入的字符
- 经过split()函数的字符串,返回的是列表
- 字符串有个操作函数是 str.join(ls),可以把列表里的各个元素,用str的内容连接起来。本题利用了空字符串‘’,来调用这个函数,因此,达到了所想要的效果:将带有逗号的字符串变换成了没有逗号的字符串。
- 有一个不可忽视的地方是join()函数的括号里的参数是列表,如果忘了这一点,会犯错
- 这个功能利用好了,可以拓展,解决其他的问题。
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() (1)
v = []
for it in sv:
if it[0] =='sid':
k = it[1]
else:
v.append(it[1])
scores[k] = v(2)
# print(scores)
so = list(scores.items())(3)
so.sort(key = lambda x:x[0],reverse = False)
for l in so:
print('{}:{}'.format(l[0],l[1]))
要点:
- 字典作为元素,定义在列表里,用列表的遍历就可以从中提取出来
- 提取出来的元素直接就是字典,因此可以用 items()直接获取,形成键值对对象集合 sv; //以列表返回可遍历的(键,值)元组数组
- 对键值对对象集合sv遍历,就可以以元组i