头歌 第6章 字符串 python

1.第1关:练习-Python字符串之综合练习一

任务:给定一个字符串,该字符串中包含了许多邮箱号,使用字符串函数筛选出这些邮箱号,并根据不同的电子邮件服务商来分类。
分类结果为一个字典,字典的键为邮箱号中`@`和`.com`之间的一截,字典的值为包含邮箱号的列表

import copy
str1 = input()# 包含邮箱号的字符串,input()输入的都是字符串
Str =copy.deepcopy(str1) #复制一个
count=Str.count("@")#看看有多少个邮箱号码
list1=list(str1.split(','))#把邮箱号全部放入list1中作为邮箱的value列表
list2=[]#定义一个空列表,作为邮箱类名的key值列表
for i in range(0,count):#有几个邮箱切几次
    a = Str.find("@")# 返回@的位置
    b = Str.find(".")# 返回.的位置
    if Str[a+1:b] not in list2:#去重操作,因为可能有好几个同类别的邮箱
        list2.append(Str[a+1:b])#把邮箱类名放入list2中
    Str=Str[b+4:]#把前面判断过的邮箱号码删除,接着判断知道判断结束为止
dic={}#定义一个空列表,将其键与值对应存入,注意这里一个键对应多个值,所以值的类型是列表,(题目要求已经给出)
for i in list2:
    for j in list1:
        if j.endswith(i+".com"):#如果值是以邮箱名+.com结尾
            dic.setdefault(i,[]).append(j)#就加入到key对应的列表中
res=[]#返回结果列表
keys=[]#key值列表
values=[]#value值列表
for key,valu in dic.items():#遍历字典
    keys.append(key)#将键加入到keys列表中
    values.append(valu)#将值加入到values列表中,注意这里有一个列表嵌套,列表里面还有列表
for i in range(len(keys)):#有几个键就循环几次
        str4=",".join(values[i])#去除了列表的方括号
        res.append(keys[i]+':'+str4)#将格式化后的元素加入到返回结果列表里面
res.sort()#进行排序,要符合测试集给出的顺序
print(res)#输出答案###

2.第2关:练习-Python字符串之综合练习二

任务:给定一个字符串,该字符串的内容为一个英语短句,请编写代码实现单词的反向排序

str1 = input()

# 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码
########## Begin ##########
# 使用字符串函数实现单词反向排序,打印反向排序之后的结果
list1 = str1.split()
list1.reverse()
str2 = " ".join(list1)
print(str2)

3.第3关:练习-Python字符串之综合练习三

任务:给定一个字符串,该字符串是一个包含地名、空格、特殊符号和 html 标签的字符串,请使用字符串函数筛选出其中的地名。

import re
str1 = input()
# 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码
########## Begin ##########
# 使用字符串函数来清洗出字符串中的地名
clean_string = re.sub(r'<[^>]+>', '', str1)
# 输出结果
# 去除 ** 字符
final_string = clean_string.replace('**', '
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值