2013-04-30 19 views
0

我在python中有一個非常基本的問題。我想通過一個csv文件的每一行並比較,看看第1行的第一個字段是否與下一行的第一個字段相同,等等。如果發現匹配,那麼我想將該字段放入一個對象中,否則將該字段放入不同的對象2中。最後,我想要計算object1 vs object2中有多少個字段。這可以在python中完成嗎?這是一個小例子。如何比較python中的兩個字段

BRM_1 679 1929 
BRM_1 203 567 
BRM_2 367 1308 
BRM_3  435  509 

正如你所看到的LINE-1的字段1是一樣的2號線的場2等的那場BRM_1應該是object1和BRM_2和BRM_3應置於對象2位。所以object1的最終數字是1,object2是2.

+0

下次您可能會將其標記爲python qn。 – tr33hous 2013-06-16 09:30:15

回答

1

當我看到這個問題沒有答案時,我感覺很糟糕。不知道你是否仍然需要答案,但我們現在就去。我假設你知道如何閱讀文件,並列出清單向他們

file1=[['a',1,2],['a',3,4],['b',4,5],['c',3,5]] 

li1=[] #first obj 
li2=[] #second obj 
skip_next = False 
file_len = len(file1) 

for current_row_num,row in enumerate(file1): 
    if skip_next: 
     skip_next = False 
     pass 
    else: 
     if current_row_num == (file_len-1): 
      # alone 
      li2.append(row) 
     elif row[0]!=file1[current_row_num+1][0]: 
      #current row belongs in obj2 
      li2.append(row) 
     else: 
      # current row has same first col value as next row 
      # append both to li1 
      li1.append(row) 
      li1.append(file1[current_row_num+1]) 
      skip_next=True 

print "first obj\n"+str(li1) 

print "second obj\n"+str(li2) 

Outout看起來像

first obj 
[['a', 1, 2], ['a', 3, 4]] 
second obj 
[['b', 4, 5], ['c', 3, 5]] 

我相信這就是你要找的人。如果你不關心訂單,只想知道行是否有對應的代碼,代碼會簡單得多。