実現したいこと
二次元配列の重複削除をしたい。
ただし、制約事項として下記がある。
・二次元配列内の子要素となるリストには数値と文字列が含まれている
・子要素同士を比較した際、並び順が違うだけで構成要素が同じ場合は重複したものとみなす
・重複削除後の子要素内の並び順はオリジナルのものと同じとする
該当のソースコード
python
1#重複削除前のリスト 2original_list = [['A',2,3],[2,'A',3],[1,'B',4],[3,4,1],[1,4,'B']] 3 4#重複削除後の成果物→['A',2,3],[2,'A',3]および[1,'B',4],[1,4,'B']は重複しているものとみなす 5output_list = [['A',2,3],[1,'B',4],[3,4,1]]
試したこと
一番近いところまでいったのはset関数を使ったものだが
制約事項の子要素の並び順がずれてしまうことから断念。
python
1original_list = [['A',2,3],[2,'A',3],[1,'B',4],[3,4,1],[1,4,'B']] 2set_list = list(set(i) for i in original_list) 3output_list = [] 4for i in set_list: 5 if i not in output_list: 6 output_list.append(i) 7output_list 8#[{2, 3, 'A'}, {1, 4, 'B'}, {1, 3, 4}]
補足情報(FW/ツールのバージョンなど)
python3.7

回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。