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

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

发布了37 篇原创文章 · 获赞 0 · 访问量 5336

猜你喜欢

转载自blog.csdn.net/qq_21156327/article/details/103403651
今日推荐