Python list去重且保持原順序不變的方法
背景
python 去重一頓操作猛如虎,set list 扒拉下去,就去重了,但是順序就打亂了。如果對(duì)順序沒有需要的話,這樣確實(shí)沒有什么所謂。
但是如果需要保留順序的話,就需要一點(diǎn)小小的改變。
code && demo
list 去重,順序亂掉
# normal 寫法
l1 = ['b','c','d','b','c','a','a']
l2 = list(set(l1))
print(l2)
# plus 寫法
l1 = ['b','c','d','b','c','a','a']
l2 = {}.fromkeys(l1).keys()
去重后還是原 list 順序
# normal 寫法 l1 = ['b','c','d','b','c','a','a'] l2 = list(set(l1)) l2.sort(key=l1.index) # plus 寫法 l1 = ['b','c','d','b','c','a','a'] l2 = sorted(set(l1),key=l1.index)
寫循環(huán)代碼實(shí)現(xiàn)
# normal 寫法
l1 = ['b','c','d','b','c','a','a']
l2 = []
for i in l1:
if not i in l2:
l2.append(i)
# plus 寫法
l1 = ['b','c','d','b','c','a','a']
l2 = []
[l2.append(i) for i in l1 if not i in l2]
寫 while 循環(huán)代碼實(shí)現(xiàn)
L = [3, 1, 2, 1, 3, 4]
T = L[:]
for i in L:
while T.count(i) > 1:
del T[T.index(i)]
T.sort(key=L.index)
lambda 寫法
備注:
- ambda L,i: L if i in L else L + [i] # 如果元素在列表中,那么返回列表本身,不在的話 L + [i]
- [[],] + L # 等價(jià)于 [[], L],方便后面計(jì)算
總結(jié)
如果糾結(jié)空間復(fù)雜度的,用 python 干啥?
先談能不能完成,再談優(yōu)化吧。
以上就是Python list去重且保持原順序不變的方法的詳細(xì)內(nèi)容,更多關(guān)于Python list去重的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
python Dijkstra算法實(shí)現(xiàn)最短路徑問題的方法
這篇文章主要介紹了python Dijkstra算法實(shí)現(xiàn)最短路徑問題的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09
Python解決IndexError: list index out of&nb
IndexError是一種常見的異常類型,它通常發(fā)生在嘗試訪問列表(list)中不存在的索引時(shí),錯(cuò)誤信息“IndexError: list index out of range”意味著你試圖訪問的列表索引超出了列表的實(shí)際范圍,所以本文給大家介紹了Python成功解決IndexError: list index out of range2024-05-05
Python+wxPython實(shí)現(xiàn)文件名批量處理
在日常的文件管理中,我們經(jīng)常需要對(duì)文件進(jìn)行批量處理以符合特定的命名規(guī)則或需求,本文主要介紹了如何使用wxPython進(jìn)行文件夾中文件名的批量處理,需要的可以參考下2024-04-04
解決Python中定時(shí)任務(wù)線程無法自動(dòng)退出的問題
今天小編就為大家分享一篇解決Python中定時(shí)任務(wù)線程無法自動(dòng)退出的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-02-02
pytorch打印網(wǎng)絡(luò)結(jié)構(gòu)的實(shí)例
今天小編就為大家分享一篇pytorch打印網(wǎng)絡(luò)結(jié)構(gòu)的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-08-08
Python根據(jù)區(qū)號(hào)生成手機(jī)號(hào)碼的方法
這篇文章主要介紹了Python根據(jù)區(qū)號(hào)生成手機(jī)號(hào)碼的方法,涉及Python隨機(jī)數(shù)與字符串的相關(guān)操作技巧,需要的朋友可以參考下2015-07-07
Pytorch?Conda環(huán)境pack打包遷移報(bào)錯(cuò)的處理方案
這篇文章主要介紹了Pytorch?Conda環(huán)境pack打包遷移報(bào)錯(cuò)的處理方案,文中通過代碼示例和圖文結(jié)合的方式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2024-07-07

