2014-04-01 83 views
0

我有一個包含多個jobtitle的文本文件。我想刪除重新出現的標題。我創建了2個空數組,一個用於所有jobtitle,另一個用於存儲非重複值。 我使用的代碼是:刪除重複的內容python

with open('jobtitle.txt') as fp: 
jobtitle =[] 
jobtitle_original = [] 
for line in fp: 
jobtitle.append(line) 
for i in range(0,len(jobtitle)): 
for j in range(0,len(jobtitle_original)): 
    if jobtitle_original[j] == jobtitle[i]: 
    continue 
    else: 
    jobtitle_original.append(jobtitle[i]) 
print jobtitle_original 

但它返回我空數組。我正在使用Python 2.7。

+0

這並不令人驚訝,因爲'jobtitle_original'在開頭是0長度,所以內部循環體永遠不會執行。 – ElmoVanKielmo

回答

1

您可以簡單地使用set

jobs = ['engineer','artist','mechanic','teacher','teacher','engineer','engineer'] 

print list(set(jobs)) 
['engineer','artist','mechanic','teacher'] 

一個更簡單的演示:

>>> lst = [1,4,2,4,3,5,3,5,3,5,4,5,4] 
>>> print list(set(lst)) 
[1,4,2,3,5] 

set接受一個列表,並創建的非重複項set。然後,您可以使用list(set(something))將它簡單地轉換爲列表。

+1

+1。我已經發布了自己的答案,只是爲了澄清如何正確處理來自文件的數據。 – ElmoVanKielmo

1

結合您的文件輸入和set解決方案。

with open('jobtitle.txt') as fp: 
    result = set(fp.readlines()) 
+0

+1適合運動和上下文有效的答案。 :) – sshashank124