如何比较python中的两个字段
我有一个非常基本的python问题。我想检查csv文件的每一行,并进行比较,看看第1行的第一个字段是否和下一行的第一个字段相同,依此类推。如果它找到了匹配项,那么我想将该字段放在object1中,否则将该字段放在另一个object2中。最后,我想计算一下object1和object2中有多少字段。这可以用python实现吗?这里有一个小例子如何比较python中的两个字段,python,match,field,Python,Match,Field,我有一个非常基本的python问题。我想检查csv文件的每一行,并进行比较,看看第1行的第一个字段是否和下一行的第一个字段相同,依此类推。如果它找到了匹配项,那么我想将该字段放在object1中,否则将该字段放在另一个object2中。最后,我想计算一下object1和object2中有多少字段。这可以用python实现吗?这里有一个小例子 BRM_1 679 1929 BRM_1 203 567 BRM_2 367 1308 BRM_3 435 509 如您所
BRM_1 679 1929
BRM_1 203 567
BRM_2 367 1308
BRM_3 435 509
如您所见,第1行的字段1与第2行的字段2相同,因此字段BRM_1应放在object1中,而BRM_2和BRM_3应放在object2中。所以object1的最终数字是1,object2的最终数字是2。当我看到这个问题没有答案时,我感到很难过。不知道你是否还需要答案,但我们开始吧。我假设您知道如何读取文件并从中列出列表
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)
看起来像
first obj
[['a', 1, 2], ['a', 3, 4]]
second obj
[['b', 4, 5], ['c', 3, 5]]
我相信这就是你想要的。如果您不关心顺序,只想知道行中是否有对应项,那么代码就会简单得多。下次您可能想将其标记为python qn。