去掉字符串中的重复元素的多种方法

不错的选择

思路
定义空串[],对原字符串进行遍历,一个个追加到空串lst中,如果重复则不添加,
返回新列表,将其转换为 字符串

def func(arg):
    lst = []
    for element in arg:
        if  not element in lst:
            lst.append(element)
        else:
            continue
    Nst = ''.join(lst)
    return Nst

不完美:不能保留原字符串的排列顺序

思路
将字符创排序,然后遍历整个序列,对相邻俩个值比较,如果不相等,
则将第一个元素等添加到一个空列表lst中,如果相等,则continue,
最后将列表lst转换中字符串Nstr

def func_1(arg):
    lst = []
    Mlist = sorted(arg)
    lth = len(Mlist)
    for i in range(lth):
        if i  < lth-1:
            if Mlist[i] != Mlist[i+1]:
                lst.append(Mlist[i])   
            else:
                continue
        else:
            lst.append(Mlist[i])
            
    Nst_1 = ''.join(lst)
    
    return Nst_1

常规

思路
定义3个空列表A,B,C; A放入唯一元素,B放入重复元素,L放入B中重复元素的唯一值, 将A,C合并得到最终列表,再转换为string

def func_2(arg):
    lst_1 = []
    lst_2 = []
    L = []
    for i in arg:
        if arg.count(i) > 1:
            lst_2.append(i)
        else:
            lst_1.append(i)
    for  e in lst_2:
        if  e not in L:
            L.append(e)
    
    Nlst = lst_1 + L
    Ns = ''.join(Nlst)
    return Ns

这个也不错

思路
根据传入的字符串长度,循环读入第i个元素比对i+1之后的所有元素,如果匹配到
则丢弃,如果没有匹配到值则丢入一个空列表。

def func_3(arg):
    lst_2 = list(arg)
    L = [] 
        
    lg = len(arg)
    for i in range(lg):
        if  not lst_2[i] in lst_2[i+1:]:
             L.append(lst_2[i])
        else:
             continue
    
    return ''.join(L)

这个方法很棒

思路:
通过set(集合)去掉重复元素,然后再转换为字符串

def func_4(arg):
    lst = list(set(arg))
    Ns = ''.join(lst)
    return Ns
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言 最先接触编程的知识是在大学里面,大学里面学了一些基础的知识,c语言,java语言,单片机的汇编语言等;大学毕...
    oceanfive阅读 3,167评论 0 7
  • 以前一直用hash表,但是并不清楚它的原理。所以,我决定手写一个hash表,彻底搞清它的工作方式。这里有一个误区是...
    放开那个BUG阅读 708评论 0 0
  • 总是留恋这夜色…… 其实我已经很累了, 身体提醒我 要跟今天的夜告个别了 可小提琴的声音太美 月光下的花儿太艳 我...
    嘉温阅读 187评论 0 3
  • 早上6:30起床与爱人晨跑。 8:00送女儿到学校。 下午16:30到学校接女儿班主任王老师叮嘱:我们家长对孩子的...
    陈诚chen阅读 170评论 0 1