python二级操作题与分析(10)

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() (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]))

要点:

  1. 字典作为元素,定义在列表里,用列表的遍历就可以从中提取出来
  2. 提取出来的元素直接就是字典,因此可以用 items()直接获取,形成键值对对象集合 sv; //以列表返回可遍历的(键,值)元组数组
  3. 对键值对对象集合sv遍历,就可以以元组i
  • 12
    点赞
  • 68
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值