我對Python和編程一般都很陌生。我在這個網站上發現了很多有用的東西,但是我也很困惑自己是否想要完成我所需要的最好的方法。Python比較嵌套列表
簡而言之,我有2個csv文件,RemoteLA和Master。每個訂單項都包含訂單號,姓氏,名字,MI,賬號#。我必須從RemoteLA中找到不在主文件中的項目。我主要關心的是匹配/驗證Order#first,然後是Account#,然後是名稱。有些情況下,我可以有兩個相同的訂單#但不同的名稱和賬戶號碼,只要它在主文件中列出相同即可。最後,如果RemoteLA訂單號碼位於主文件中,但賬號被錯誤列出,我希望將它打印在不同於主訂單號碼根本不在主文件中的輸出中。以下是我的簡化列表。
RemoteLA = [['100', 'JACKSON', 'CHRIS', 'D', '12344'], ['110', 'SMITH', 'JANET', 'L' '1223'], ['120', 'STONE', 'MAX', 'W', '1233']]
Master = [['100', 'JACKSON', 'CHRIS', 'D', '1234'], ['90', 'BARST', 'JOEY', 'D', '1344'], ['80', 'NORDON', 'BEV', 'A', '1122'], ['120', 'STONE', 'MAX', 'W', '1233']]
就像我說的,我已經嘗試使用套,元組等的列表很多事情我最後的「嘗試」是使用while循環如下,我只是想看看我是否能得到的結果我想,但看來我仍然在做錯事。
i=0
while i < len(RemoteLA):
j = 0
while j < len(Master):
if RemoteLA[i][0] == Master[j][0]:
if RemoteLA[i][1] == Master[j][1]:
if RemoteLA[i][2] == Master[j][2]:
print('All match')
elif RemoteLA[i][2] == '9999':
pass
else:
print('Account number does not match')
else:
print('Name does not match')
else:
print('Order number does not match')
j = j + 1
i = i + 1
任何幫助或推動正確的方向將非常感激。對不起,我很抱歉。謝謝。
你的3個ifs可以用'all(a == b代替a,b in zip(RemoteLA [i] [,Master [j]))''雖然9999的東西在Python中是奇怪的 – njzk2
你不需要做這樣討厭的索引變量。在RemoteLA **中更好地使用**,無需擁有這樣的C風格索引變量 – tschm
我實際上有4個「遠程」文件進行比較,其中一個帳號與所有9個一起列出 - 直到這是固定的,任何帳戶號碼列爲9999我想通過沒有做任何事情。 – ceitel