您的当前位置:首页字符串去重的五种方法

字符串去重的五种方法

2023-01-19 来源:乌哈旅游
# 方法1、for循环字符串去重
name='周吴王赵黄吴杨王李张陈杨侯'
newname=''
for i in name:
    if i not in newname:
        newname=i+newname
print(newname)
name='周吴王赵黄吴杨王李张陈杨侯'
newname=''
i = len(name)-1
while True:
    if i>=0:
        if name[i] not in newname:
            newname+=(name[i])
            print(newname)
            i-=1
        else:
            break
print('*'*20)
print(newname)
打印结果:

侯杨
侯杨陈
侯杨陈张
侯杨陈张李
侯杨陈张李王
********************
侯杨陈张李王
# 方法3使用列表的方法
name='周吴王赵黄吴杨王李张陈杨侯'
print('打印原name:',name)
newname=set(name)
print('打印newname:',newname)
newname1=list(newname)
print('将集合转换为列表:',newname1)
print(' '.join(newname1))
print('*'*20)
newname1.sort(key=name.index)  #sort() 函数用于对原列表进行排序,如果指定参数,则使用比较函数指定的比较函数。
print(' '.join(newname1))
打印结果:
打印原name: 周吴王赵黄吴杨王李张陈杨侯
打印newname: {'赵', '王', '周', '黄', '杨', '李', '吴', '张', '陈', '侯'}
将集合转换为列表: ['赵', '王', '周', '黄', '杨', '李', '吴', '张', '陈', '侯']
赵 王 周 黄 杨 李 吴 张 陈 侯
*****************
周 吴 王 赵 黄 杨 李 张 陈 侯
# 方法4:在原字符串中直接删除
name='周吴王赵黄吴杨王李张陈杨侯'
l=len(name)
for s in name:
    print(s)
    if name[0] in name [1:l]:
        name = name[1:l]
    else:
        name=name[1:l]+name[0]
print(name)
打印结果:
D:\python3.6.5\python.exe C:/Users/issuser/PycharmProjects/untitled/yinchengPython/EXE/去重.py













周赵黄吴王李张陈杨侯
# 方法5:fromkeys()方法是把字符串str转成字典
name='周吴王赵黄吴杨王李张陈杨侯'
zd={}.fromkeys(name)            # fromkeys() 函数用于创建一个新字典,以序列 seq 中元素做字典的键,value 为字典所有键对应的初始值
print(zd)
mylist=list(zd.keys())
print(mylist)
print(' '.join(mylist))          #返回通过指定字符连接序列中元素后生成的新字符串
{'周': None, '吴': None, '王': None, '赵': None, '黄': None, '杨': None, '李': None, '张': None, '陈': None, '侯': None}
['周', '吴', '王', '赵', '黄', '杨', '李', '张', '陈', '侯']
周 吴 王 赵 黄 杨 李 张 陈 侯

因篇幅问题不能全部显示,请点此查看更多更全内容