Python中字符串和列表去重方法總結(jié)
字符串去重
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、將字符串轉(zhuǎn)換成列表的方式(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、根據(jù)字符串下標(biāo),判斷子集
# *_* coding : UTF-8 *_* ???????name='王李張李陳王楊張吳周王劉趙黃吳楊' l = len(name) # 字符串下標(biāo)總長(zhǎng)度 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循環(huán)的方式
# *_* coding : UTF-8 *_* city=['上海', '廣州', '上海', '成都', '上海', '上海', '北京', '上海', '廣州', '北京', '上海'] ncity = [] # 定義一個(gè)空列表 for item in city: # 遍歷列表city if item not in ncity: # 如果item不在ncity,則添加到ncity ncity.append(item) print (ncity)
輸出:
['上海', '廣州', '成都', '北京']
2、利用set()函數(shù)
set() 函數(shù)創(chuàng)建一個(gè)無序不重復(fù)元素集,可進(jìn)行關(guān)系測(cè)試,刪除重復(fù)數(shù)據(jù)。
# *_* 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() 函數(shù)創(chuàng)建一個(gè)新字典,獲取新字典的鍵(唯一值) print (mylist)
輸出:
['上海', '廣州', '成都', '北京']
到此這篇關(guān)于Python中字符串和列表去重方法總結(jié)的文章就介紹到這了,更多相關(guān)Python去重內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python OpenCV 調(diào)用攝像頭并截圖保存功能的實(shí)現(xiàn)代碼
這篇文章主要介紹了Python OpenCV 調(diào)用攝像頭并截圖保存功能,本文通過兩段實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-07-07Python的Tornado框架實(shí)現(xiàn)異步非阻塞訪問數(shù)據(jù)庫(kù)的示例
Tornado框架的異步非阻塞特性是其最大的亮點(diǎn),這里我們將立足于基礎(chǔ)來介紹一種簡(jiǎn)單的Python的Tornado框架實(shí)現(xiàn)異步非阻塞訪問數(shù)據(jù)庫(kù)的示例:2016-06-06解決python gdal投影坐標(biāo)系轉(zhuǎn)換的問題
今天小編就為大家分享一篇解決python gdal投影坐標(biāo)系轉(zhuǎn)換的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-01-01python創(chuàng)建Flask Talisman應(yīng)用程序的步驟詳解
Flask是一個(gè)功能強(qiáng)大的Web框架,主要用于使用Python語(yǔ)言開發(fā)有趣的Web應(yīng)用程序,Talisman基本上是一個(gè)Flask擴(kuò)展,用于添加HTTP安全標(biāo)頭我們的Flask應(yīng)用程序易于實(shí)施,本文就給大家講講帶Talisman的Flask安全性,需要的朋友可以參考下2023-09-09詳解Python3.6安裝psutil模塊和功能簡(jiǎn)介
這篇文章主要介紹了詳解Python3.6安裝psutil模塊和功能簡(jiǎn)介,詳細(xì)的介紹了安裝psutil模塊和該模塊的使用,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-05-0550行Python代碼實(shí)現(xiàn)人臉檢測(cè)功能
現(xiàn)在的人臉識(shí)別技術(shù)已經(jīng)得到了非常廣泛的應(yīng)用,支付領(lǐng)域、身份驗(yàn)證、美顏相機(jī)里都有它的應(yīng)用。下面小編給大家?guī)砹嘶?0行Python代碼實(shí)現(xiàn)人臉檢測(cè)功能,一起看看吧2018-01-01Pytorch中關(guān)于RNN輸入和輸出的形狀總結(jié)
這篇文章主要介紹了Pytorch中關(guān)于RNN輸入和輸出的形狀總結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06