說我有一個二維數組,如:比較2D陣列的第1列並刪除重複的Python
array = [['abc',2,3,],
['abc',2,3],
['bb',5,5],
['bb',4,6],
['sa',3,5],
['tt',2,1]]
我想刪除任何行,其中第一列重複
即比較陣列[0]和只返回:
removeDups = [['sa',3,5],
['tt',2,1]]
我想應該是這樣的: (設定第一欄爲TMP變量,比較TMP剩餘和#SET陣列從比較返回)
for x in range(len(array)):
tmpCol = array[x][0]
del array[x]
removed = compare(array, tmpCol)
array = copy.deepcopy(removed)
print repr(len(removed)) #testing
其中compare是: (比較TMP其餘每個陣列項目的第一個關口,如果比賽中刪除,否則返回原來的數組)
def compare(valid, tmpCol):
for x in range(len(valid)):
if valid[x][0] != tmpCol:
del valid[x]
return valid
else:
return valid
我不斷收到「索引超出範圍」的錯誤。我嘗試了其他方式來做到這一點,但我真的很感激一些幫助!你可以嘗試
的人指數超出範圍的錯誤「是因爲你設置了' for'循環基於數組的初始長度,但是使用del語句將其縮短。所以,最終你會達到不再存在的指數。你可以使用'while'循環,但即使如此,這段代碼也不會完全按照你的想法做。 –