SEが教えるEC運営のブログ ウェブ運用と開発現場を経験したSEのTIPS
TOP > BLOG > IT記事

Pythonの二次元配列のリストから重複を削除する

早川朋孝 早川朋孝
EC専門のSE

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と一致しない行のデータをそこに格納していく。これで終わり。

×

メルマガ登録

SEが商品登録、在庫管理、発注などのEC業務を効率よくプログラムで実施する方法を無料配信します。

  • APIやツールによる業務効率化
  • 広告運用に関するTips
  • CVRを改善するアクセス解析のコツ
このブログを書いてる人
早川 朋孝 EC専門のSE
IT業界歴20年のエンジニアです。ネットショップ勤務で苦労した経験から、EC・ネットショップ事業者に向けて、バックオフィス業務の自動化・効率化を提案するSEをしています。
Web運用の経験もあり、アクセス解析、広告運用が得意で、広告APIとプログラムとの合わせ技で並の広告代理店にはできない提案が可能です。
プロフィール
API連携の相談にのります
趣味は読書、ピアノ、マリノスの応援など
PAGE TOP