簡單的例子 - 我檢查所有以前行,以確保。 BTW
[1, 0.002, 3]
[2, 0.001, 2]
[5, 0.1, 1]
[6, 0.065, 10]
[8, 0.45, 6]
:
使用csv
模塊讀取和寫入CSV文件
csv = [
[1, 0.002, 3],
[2, 0.001, 2],
[5, 0.100, 1],
[5, 0.023, 4],
[6, 0.065, 10],
[15, 0.032, 10],
[8, 0.450, 6]
]
new_csv = csv[:1]
#print new_csv
for x in csv[1:]:
#print 'x:', x
repeated = False
for y in new_csv:
#print 'y:', y
for a,b in zip(x,y):
if a == b:
repeated = True
break
if repeated:
break
if not repeated:
new_csv.append(x)
for x in new_csv:
print x
結果我刪除[15, 0.032, 10]
因爲[6, 0.065, 10]
是第一個在列表中。
編輯:同樣沒有repeated
但for/else
和any()
csv = [
[1, 0.002, 3],
[2, 0.001, 2],
[5, 0.100, 1],
[5, 0.023, 4],
[6, 0.065, 10],
[15, 0.032, 10],
[8, 0.450, 6]
]
new_csv = csv[:1]
for x in csv[1:]:
for y in new_csv:
if any(a == b for a,b in zip(x,y)):
break
else:
new_csv.append(x)
for x in new_csv:
print x
所以,你一定要記住上一行與當前行比較。哪裏有問題 ?你的代碼在哪裏? – furas
你在顯示哪一行被刪除時不一致。例如,刪除第一列中帶有'5'的第二行,但刪除第三個列中帶有'10'的第一行。這是什麼?如果這是排序,在哪個字段? – dawg
一般來說,對數據進行排序不會讓您比較連續的行,因爲這樣做只會保證主要排序列中的重複值將會在一起。如果你想避免所有列中的重複項,你必須進行多重排序和重複刪除通行證,或者跟蹤每列中到目前爲止所看到的所有唯一值,以便一次完成。我認爲你應該修改你的問題並重新打開它 - 這是一個有趣的問題。 – martineau