2017-02-04 69 views
-3

添加項目不重複的結果這是我到目前爲止的代碼:試圖從一個列表到另一個空單

duplist = [5,9,14,3,9,97,4,3,23,85,123,5] 

singlist = [] 

for i in (duplist) : 
    if i != singlist : 
     [str(i)] + singlist 
     print(singlist) 

我試圖全部來自duplist的項目加入到singlist不添加重複。我從這段代碼得到的結果是一個空的列表。我相信錯誤是在我的if語句行中,儘管我不確定使用哪個運算符而不是!=

+2

這裏有很多問題,Will。 'i!= singlist'將一個整數與一個列表對象進行比較。之後,'[str(i)] + singlist'會將'singlist'和'str(i)'連接起來,但不保留結果(你不會把它分配給任何地方,對嗎?)。對於第一種情況,您正在查找'in'運算符,而第二個查找列表中的'append'方法。簡而言之,我建議你將瀏覽器指向https://docs.python.org/3/並查看教程,它會幫助你很多。 –

回答

0

這可以簡單地通過獲取列表的集合並從中構建新的列表來完成。集合中的每個項目都是獨一無二的。

singlist = [i for i in set(duplist)] 

長的方法:

for i in duplist: 
    if i not in singlist: 
     singlist.append(i) 
0

我看到你的代碼的幾個問題。

試試這個:

duplist = [5,9,14,3,9,97,4,3,23,85,123,5] 

singlist = [] 

for i in (duplist): 
    if i not in singlist: 
     singlist.append(i) 
     print(singlist) 
0

如果允許外部庫,你可以使用這個

​​
+0

雖然這段代碼可能解決問題,但一個好的答案也應該包含一個解釋。 – BDL

0

>>> from iteration_utilities import unique_everseen 

>>> duplist = [5,9,14,3,9,97,4,3,23,85,123,5] 
>>> list(unique_everseen(duplist)) 
[5, 9, 14, 3, 97, 4, 23, 85, 123] 

這是基於在itertools documentation的配方。所以你可以輕鬆地自己實現它。

相關問題