这篇文章主要介绍“Python中字符串和列表怎么去重”,在日常操作中,相信很多人在Python中字符串和列表怎么去重问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python中字符串和列表怎么去重”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
字符串去重
1、直接遍历字符串的方式
# *_* coding : UTF-8 *_*name='王李张李陈王杨张吴周王刘赵黄吴杨'newname=''for char in name: if char not in newname: newname+=charprint (newname)
输出:
王李张陈杨吴周刘赵黄
2、遍历去重的另一种方式
# *_* coding : UTF-8 *_*name='王李张李陈王杨张吴周王刘赵黄吴杨'newname=''i = len(name)-1while True: if i >=0: if name[i] not in newname: newname+=(name[i]) i-=1 else: breakprint (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))
输出:
王李张陈杨吴周刘赵黄
列表去重
1、利用for循环的方式
# *_* 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() 函数创建一个无序不重复元素集,可进行关系测试,删除重复数据。
# *_* coding : UTF-8 *_*city=['上海', '广州', '上海', '成都', '上海', '上海', '北京', '上海', '广州', '北京', '上海']ncitx=list(set(city))print(ncitx)
输出:
['广州', '成都', '上海', '北京']
3、利用sort()排序
# *_* coding : UTF-8 *_*city=['上海', '广州', '上海', '成都', '上海', '上海', '北京', '上海', '广州', '北京', '上海']ncitx=list(set(city))ncitx.sort( key=city.index)print(ncitx)
输出:
['上海', '广州', '成都', '北京']
4、利用sort()排序后,迭代
# *_* coding : UTF-8 *_*city=['上海', '广州', '上海', '成都', '上海', '上海', '北京', '上海', '广州', '北京', '上海']city.sort()for x in city: while city.count(x)>1: del city[city.index(x)]print(city)
输出:
['上海', '北京', '广州', '成都']
5、巧用字典
# *_* coding : UTF-8 *_*city=['上海', '广州', '上海', '成都', '上海', '上海', '北京', '上海', '广州', '北京', '上海']mylist = list({}.fromkeys(city).keys()) # fromkeys() 函数创建一个新字典,获取新字典的键(唯一值)print (mylist)
输出:
['上海', '广州', '成都', '北京']
到此,关于“Python中字符串和列表怎么去重”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!