Pythonのリストから重複を削除するのは1行で済む。仮にdata_listと名前のリストがあるとすると、重複を削除するのはこの記述だけで終わり。
data_list = list(set(data_list))
しかし、二次元配列で、特定の行をキーにして重複を削除したいという場合は一手間加えないといけない。ここでは0列目をキーにすると仮定して話を進める。
delete_listというのは削除対象の列番号(インデックス)を格納するためのリスト型変数。ある1行が、同じ行より1行下から最後の行までに一致した場合にdelete_listにインデックスを入れていく。
data_list:重複を削除したい元の二次元配列
delete_list:削除対象のインデックスを格納するリスト
data_list_new:重複を排除した新しい二次元配列
delete_list = [] for i, row in enumerate(data_list): for j in range(i+1, len(data_list)): if j == len(data_list): j -= 1 #最後の行の処理はi+1でout of range になってしまうので-1にする if data_list[i][0] == data_list[j][0]: delete_list.append(j) delete_list = list(set(delete_list)) #1次元のリストにして重複を削除する data_list_new = [] for i, row in enumerate(data_list): if i not in delete_list: data_list_new.append(row)
最後に新しいリスト型の変数を用意して、delete_listと一致しない行のデータをそこに格納していく。これで終わり。