python去除重復元素


目的:讓我們兩個列表壓縮后,去除重復的點;

1.set()方法:

驀然回首,那人卻在燈火闌珊處;

這個方法實現了我想要的壓縮后的列表的重復刪除;  

list4 = [0,0,1,2,4,5,6,7,5,0,2]
list5 = [2,5,4,8,5,6,6,6,6,2,8]

list6 = zip(list4,list5)
list7 = list(list6)
print(list7)
a = list(set(list7))
print(a)
#結果:
[(0, 2), (0, 5), (1, 4), (2, 8), (4, 5), (5, 6), (6, 6), (7, 6), (5, 6), (0, 2), (2, 8)]
[(6, 6), (4, 5), (2, 8), (5, 6), (7, 6), (1, 4), (0, 5), (0, 2)]

到今天我才發現這種方法有個缺點是順序是亂的 (時間:2020-04-1420:24:02),想要不亂的順序:

https://www.cnblogs.com/xiao-yu-/p/12693855.html

2.np.unique()方法:

import numpy as np

list1 = [0,0,1,2,4,5,6,7,5]
list2 = np.unique(list1)
print(list2)

list4 = [0,0,1,2,4,5,6,7,5,0,2]
list5 = [2,5,4,8,5,6,6,6,6,2,8]

list6 = zip(list4,list5)
list7 = list(list6)

print(np.unique(list7))
#結果:
[0 1 2 4 5 6 7]#這個結果是我們想要的
[0 1 2 4 5 6 7 8] #這個不是我們要的結果,相當於沒把list(zip())中的小括號當整體對待

3.pd.Series()方法:

import pandas as pd

list1 = [0,0,1,2,4,5,6,7,5]

list3 = pd.Series(list1)
print(list3.unique())

list4 = [0,0,1,2,4,5,6,7,5,0,2]
list5 = [2,5,4,8,5,6,6,6,6,2,8]

list6 = zip(list4,list5)
list7 = list(list6)

list8 = pd.Series(list7)
print(list8.unique())

#結果:
[0 1 2 4 5 6 7] #這個是我們想要的
[(0, 2) (0, 5) (1, 4) (2, 8) (4, 5) (5, 6) (6, 6) (7, 6)]#這個也算是我們要的,但是就是()之間沒有","

4.遍歷去除重復元素:

list1 = [0,0,1,2,4,5,6,7,5]

list9 = []
for i in list1:
    if not i in list9:
        list9.append(i)
print(list9)

#結果:
[0, 1, 2, 4, 5, 6, 7] #是我們想要的,就是中間多了","

5.列表推導式:

list1 = [0,0,1,2,4,5,6,7,5]

list10 = []
[list10.append(i) for i in list1 if not i in list10]
print(list10)
#結果:
[0, 1, 2, 4, 5, 6, 7] #比上面簡單多了,哈哈。

6.再試試可惡的list7(list(zip)之后的):

list4 = [0,0,1,2,4,5,6,7,5,0,2]
list5 = [2,5,4,8,5,6,6,6,6,2,8]

list6 = zip(list4,list5)
list7 = list(list6)

list9 = []
for i in list7:
    if not i in list9:
        list9.append(i)
print(list9)

list10 = []
[list10.append(i) for i in list7 if not i in list10]
print(list10)

#結果
[(0, 2), (0, 5), (1, 4), (2, 8), (4, 5), (5, 6), (6, 6), (7, 6)]
[(0, 2), (0, 5), (1, 4), (2, 8), (4, 5), (5, 6), (6, 6), (7, 6)]
#這樣也行啊,但是我選擇set(),一句話的事
#但是謹記缺點:亂序

參考地址:

https://www.cnblogs.com/zhangshuyang/p/8087895.html

https://jingyan.baidu.com/article/f3e34a12ebd701f5eb6535c6.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM