zl程序教程

您现在的位置是:首页 >  后端

当前栏目

python学习之字符串去重的几种方法

Python方法学习 字符串 几种
2023-09-11 14:17:48 时间

最近的工作经常会碰到对字符串进行去重的操作,这篇文章主要介绍python去掉字符串中重复字符的几种方法,需要的小伙伴可以参考哦。

1、直接遍历字符串的方式

# *_* coding : UTF-8 *_*

name='王李张李陈王杨张吴周王刘赵黄吴杨'
newname=''
for char in name:
    if char not in newname:
        newname+=char
print (newname)

王李张陈杨吴周刘赵黄

2、遍历去重的另一种方式

# *_* coding : UTF-8 *_*

name='王李张李陈王杨张吴周王刘赵黄吴杨'
newname=''
i = len(name)-1
while True:
    if i >=0:
        if name[i] not in newname:
            newname+=(name[i])
        i-=1
    else:
        break
print (newname)
杨吴黄赵刘王周张陈李

3、将字符串转换成列表的方式(list sort)

# *_* coding : UTF-8 *_*

name = '王李张李陈王杨张吴周王刘赵黄吴杨'
myname = set(name)
print(myname)
newname = list(set(name))
print(''.join(newname))
newname.sort(key=name.index)
print(newname)
print(''.join(newname))

{'张', '黄', '刘', '杨', '吴', '周', '陈', '赵', '王', '李'}
张黄刘杨吴周陈赵王李
['王', '李', '张', '陈', '杨', '吴', '周', '刘', '赵', '黄']
王李张陈杨吴周刘赵黄

4、根据字符串下标,判断子集

# *_* coding : UTF-8 *_*

name='王李张李陈王杨张吴周王刘赵黄吴杨'
l = len(name)        # 字符串下标总长度
for s in name:
    if name[0] in name[1:l]:
        name = name[1:l]
    else:
        name= name[1:l]+name[0]
print(name)

李陈张周王刘赵黄吴杨

5、使用 ', '.join(L) ,将列表拼接成我们想要的字符串

# *_* coding : UTF-8 *_*

name='王李张李陈王杨张吴周王刘赵黄吴杨'
zd={}.fromkeys(name)
mylist=list(zd.keys())
# mylist = list({}.fromkeys(name).keys())
print (''.join(mylist))
王李张陈杨吴周刘赵黄

好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。4