Pythonで配列の中にある重複する要素の削除と抽出をする。
Python 3.7で確認しています。
重複要素の削除
set
は集合型で重複の削除や集合の演算ができます。
list型をset()
でset型に変換でき、重複要素の削除も行います。
l = [1, 2, 2, 3, 3, 4]
set(l)
# {1, 2, 3, 4}
list型に戻すとき
l = [1, 2, 2, 3, 3, 4]
list(set(l))
# [1, 2, 3, 4]
重複要素の抽出
重複した要素を取り出すときはsetと内包表記で書けます。
l = [1, 2, 2, 3, 3, 4]
dup = [x for x in set(l) if l.count(x) > 1]
# [2, 3]
内包表記にif 条件
をつけると、条件が正のものだけ取り出すフィルタリングができます。
ここを変えて重複数の指定なども可能です。
重複しないユニークな要素の抽出。
unique = [x for x in set(l) if l.count(x) == 1]
# [1, 4]
3つの配列に共通する要素
上を応用して配列に共通する要素を抽出してみます。
l1 = [1, 3, 5]
l2 = [2, 3, 4]
l3 = [1, 2, 3, 5]
l = l1 + l2 + l3
dup = [x for x in set(l) if l.count(x) == 3]
# [3]
集合の場合
set型は&
を使うと積集合です。
共通する要素だけ残せます。
l = set(l1) & set(l2)
# {3}
l = set(l1) ^ set(l2)
# {3, 4}
-
: かつ、積
-
: または、和
-
: 逆
Python:ファイルダウンロードの進行状況とファイルサイズを表示する方法。urllib
Pythonschedule2024-02-27
【Python】tqdmでforの進捗状況を表示する
PythonColabolatoryschedule2021-02-16
学習済みの日本語単語ベクトルをColabolatoryで試してみる
自然言語処理PythonColabolatoryschedule2021-02-04
Unity ML-Agentsで新しく学習環境を作る
Unity機械学習C#PythonDeepLearningschedule2021-01-22
27. 内部リンクの除去
自然言語処理100本ノックPythonschedule2020-03-17