004_Python字符串练习_n种方法_[爱奇艺校招]删除重复的字符串

输入:一个字符串s,s的长度(1<=s<=1000),s中的每个字符都是小写字母(‘a’-‘z’)
输出:一个字符串,对于同一个字符,只保留第一次出现并删除后面出现的字母

方法1:字符串的for 循环 + 字符串的成员操作符 + 分支流程控制

# 1. 用户输入
user_str = input()
# 2. 定义列表,并存储只出现过一次的元素
str_list = []
for item in user_str:
    if item not in str_list:
        str_list.append(item)
# 3. 利用 join 将列表中的字符型元素连接为一串字符串
print("".join(str_list))

方法2:set去重 + 列表排序 + 列表for循环

# 1. 用户输入
user_str = input()
# 2. 利用集合对输入字符串去重,之后转换成列表,以实现后续排序
user_str_list = list(set(user_str))
# 3. 保证去重前后元素位置的一致性。因为集合是无序数据类型,利用集合去重后无法保证元素的顺序,所以按索引大小进行排序。
user_str_list.sort(key = user_str.index)
# 4. 将列表中的元素统一为一串字符串
res = ""
for item in user_str_list:
    res += item
print(res)

方法3:字典应用->利用key值去重 + 列表排序

# 1. 用户输入
user_str = input()
# 2. 字典的应用->利用key值去重,因为返回值是一个dict_keys对象,所以list()转换成列表数据类型
# 查看keys()方法的源代码,其说明文档为:“D.keys() -> a set-like object providing a view on D's keys”,
# 所以本质上还是应用set实现去重的,因此也具有set数据类型的无序性
str_list = list({}.fromkeys(user_str).keys())
# 3. 排序保持去重后元素位置前后的一致性
str_list.sort(key=user_str.index)
# 4. 利用 join 将列表中的元素连接为一串字符串
print("".join(str_list))

执行结果:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值