国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術文章
文章詳情頁

Python list去重且保持原順序不變的方法

瀏覽:77日期:2022-06-23 14:24:48
背景

python 去重一頓操作猛如虎,set list 扒拉下去,就去重了,但是順序就打亂了。如果對順序沒有需要的話,這樣確實沒有什么所謂。但是如果需要保留順序的話,就需要一點小小的改變。

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)

寫循環代碼實現

# 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 循環代碼實現

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 # 等價于 [[], L],方便后面計算 總結

如果糾結空間復雜度的,用 python 干啥?先談能不能完成,再談優化吧。

以上就是Python list去重且保持原順序不變的方法的詳細內容,更多關于Python list去重的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 荔波县| 天祝| 定结县| 湟源县| 托里县| 宁陵县| 天峨县| 英德市| 乐至县| 巴里| 太和县| 镇坪县| 海林市| 新绛县| 磐安县| 惠来县| 容城县| 德昌县| 金沙县| 凤台县| 无极县| 遂平县| 康马县| 荥经县| 子长县| 岳普湖县| 阿城市| 成武县| 克东县| 岳普湖县| 汉川市| 嘉禾县| 鹤壁市| 杭锦旗| 青川县| 通化市| 京山县| 贵溪市| 台北县| 濉溪县| 德清县|