Python中字符串和列表去重方法

本文主要为大家整理了Python中实现字符串和列表去重的常用方法,文中的示例代码讲解详细,对我们深入了解Python有一定的帮助,感兴趣的可以了解一下

字符串去重

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

1

2

3

4

5

6

7

8

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

name='王李张李陈王杨张吴周王刘赵黄吴杨'

newname=''

for char in name:

    if char not in newname:

        newname+=char

print (newname)

输出:

王李张陈杨吴周刘赵黄

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

1

2

3

4

5

6

7

8

9

10

11

12

13

# *_* 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)

1

2

3

4

5

6

7

8

9

10

# *_* 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、根据字符串下标,判断子集

1

2

3

4

5

6

7

8

9

10

# *_* 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) ,将列表拼接成我们想要的字符串

1

2

3

4

5

6

7

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

name='王李张李陈王杨张吴周王刘赵黄吴杨'

zd={}.fromkeys(name)

mylist=list(zd.keys())

# mylist = list({}.fromkeys(name).keys())

print (''.join(mylist))

输出:

王李张陈杨吴周刘赵黄

列表去重

1、利用for循环的方式

1

2

3

4

5

6

7

8

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

city=['上海', '广州', '上海', '成都', '上海', '上海', '北京', '上海', '广州', '北京', '上海']

ncity = [] # 定义一个空列表

for item in city: # 遍历列表city

    if item not in ncity: # 如果item不在ncity,则添加到ncity

        ncity.append(item)

print (ncity)

输出:

['上海', '广州', '成都', '北京']

2、利用set()函数

set() 函数创建一个无序不重复元素集,可进行关系测试,删除重复数据。

1

2

3

4

5

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

city=['上海', '广州', '上海', '成都', '上海', '上海', '北京', '上海', '广州', '北京', '上海']

ncitx=list(set(city))

print(ncitx)

输出:

['广州', '成都', '上海', '北京']

3、利用sort()排序

1

2

3

4

5

6

7

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

city=['上海', '广州', '上海', '成都', '上海', '上海', '北京', '上海', '广州', '北京', '上海']

ncitx=list(set(city))

ncitx.sort( key=city.index)

print(ncitx)

输出:

['上海', '广州', '成都', '北京']

4、利用sort()排序后,迭代

1

2

3

4

5

6

7

8

9

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

city=['上海', '广州', '上海', '成都', '上海', '上海', '北京', '上海', '广州', '北京', '上海']

city.sort()

for x in city:

     while city.count(x)>1:

         del city[city.index(x)]

print(city)

输出:

['上海', '北京', '广州', '成都']

5、巧用字典

1

2

3

4

5

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

city=['上海', '广州', '上海', '成都', '上海', '上海', '北京', '上海', '广州', '北京', '上海']

mylist = list({}.fromkeys(city).keys())  # fromkeys() 函数创建一个新字典,获取新字典的键(唯一值)

print (mylist)

输出:

['上海', '广州', '成都', '北京']

到此这篇关于Python中字符串和列表去重方法总结的文章就介绍到这了,希望可以帮到你。

转自:微点阅读   https://www.weidianyuedu.com

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值