我想創建一個使用Python的對象的唯一列表,我失敗了。無論我使用列表還是使用集合都無關緊要,它似乎不起作用。當我打印列表/集時,我注意到列表中有幾個非唯一對象。我意識到是這樣的,因爲其中一些對象在詞的開頭有一個「空格」。我環顧四周,並認爲使用lstrip('')會幫助我的事業,但可悲的是事實並非如此。Python中的對象的唯一列表不工作
最奇怪的是「唯一對象的數量」是正確的,但最終創建的唯一對象的列表是錯誤的。任何人都可以請指出我哪裏錯了?
我感興趣的列是 '對象' 和獨特的列表應包含貓頭鷹,貓,福克斯,牛,山羊,狗,螞蟻,Buffalo,Lion and tiger。
的樣本數據:
Key ID Name Code State Object
01 NULL NULL NULL NULL Athletics, Light,Netball
02 NULL NULL NULL NULL BMX Track, Gridiron, Oval
05 NULL NULL NULL NULL Dog park, Cricket, Soccer
10 NULL NULL NULL NULL Netball, Oval, Softball
21 NULL NULL NULL NULL Seat, Playground, Ping Pong Table
13 NULL NULL NULL NULL Bench, Bike Rack, Seat
我的工作代碼附加如下:
import csv
fOpen1=open('C:\Data.csv')
uniqueList=csv.writer(open('C:\UniqueList.csv', 'wb'))
Master=csv.reader(fOpen1)
Master.next()
unique=[]
for row in Master:
for item in row[5].split(','):
item.strip(' ')
if item not in unique:
unique.append(item)
uniqueList.writerow(unique)
什麼我得到在這到底是重複的,包括2只狐狸和缺少一些獨特的條目好。當然,這只是虛擬數據,但我希望我在解釋發生了什麼時很清楚。
UPDATE1: 我已經更新了腳本,它的工作正常,但另一個問題已經出現。我用我正在處理的真實數據更新了專欄。即沒有被添加到最終名單獨特的項目包括:
Gridiron
Cricket
Ping Pong Table
Softball
UPDATE2:
我已經恢復到原來的「錯誤」的腳本,因爲它現在工作好。我正在處理的csv文件有問題。
由於
@ AnandSKumar-感謝您的見解。但是現在我又遇到了另一個問題。雖然我已經擺脫了尾隨空格,但最終列表中的唯一條目數量並不完整。在我正在處理的文件中,有30個唯一條目。按照建議進行修改後,結果已經降到21.任何想法可能會發生在這裏?再一次感謝你! – VGu
您是否檢查瞭解哪些特定條目缺失?他們似乎有任何聯繫?也許他們不在'Object'字段中? –
@ AnandSKumar-我手動檢查,無法看到缺少的條目之間的一般鏈接,即沒有連接說。當我檢查我正在處理的源文件時,它們都在Object字段中。這令人迷惑。 – VGu