python 重複 数えない

Python
本ページはプロモーションが含まれています

はじめに

大量のデータの中から、どの様な文字や数字が使われているか?を調べる必要が意外とあったりします。

重複の回数ではなく、その文字や数字が存在するどうかを確認したい場合(数学で言うところの)「集合」が役にたちます。

Pythonではsetを使えば簡単に文字や数字が使用されているのかを確認できます。

サンプルソースコード

ファイルの重複を数えず、どの数字が使われているのかを確認するサンプルコードです。
ファイル名はset_test.pythonとしています。

# set_test.python
tmp = [68, 48, 71, 30, 93, 89, 58, 58, 82, 12, 26, 75, 72, 32, 63, 53, 35, 25, 10, 86, 67, 31, 83, 96, 25, 51, 82, 66, 92, 65, 67, 83, 85, 75, 51, 53, 33, 33, 66, 99, 93, 70, 41, 76, 38, 23, 57, 13, 92, 19, 25, 60, 33, 48, 10, 40, 87, 70, 3, 42, 72, 79, 88, 31, 98, 80, 75, 18, 55, 18, 32, 25, 57, 51, 53, 6, 84, 96, 38, 68, 100, 0, 69, 49, 10, 35, 53, 39, 50, 85, 85, 93, 41, 98, 9, 50, 72, 87, 42, 47]

print(type(tmp))
print(tmp)

datas =set(tmp)
print(type(datas))
print(datas)

「tmp」にはランダムで作った0〜100までの数字を100個格納したものが格納されています。
そのtmpのデータをset()に格納して、結果をdatasで受け取っています。
重複が除かれた集合である結果の「datas」を画面に表示しています。

実行結果

プログラムを下のコマンドで実行すると

python set_test.py

以下の様に結果が表示されます。

<class 'list'>
[68, 48, 71, 30, 93, 89, 58, 58, 82, 12, 26, 75, 72, 32, 63, 53, 35, 25, 10, 86, 67, 31, 83, 96, 25, 51, 82, 66, 92, 65, 67, 83, 85, 75, 51, 53, 33, 33, 66, 99, 93, 70, 41, 76, 38, 23, 57, 13, 92, 19, 25, 60, 33, 48, 10, 40, 87, 70, 3, 42, 72, 79, 88, 31, 98, 80, 75, 18, 55, 18, 32, 25, 57, 51, 53, 6, 84, 96, 38, 68, 100, 0, 69, 49, 10, 35, 53, 39, 50, 85, 85, 93, 41, 98, 9, 50, 72, 87, 42, 47]
<class 'set'>
{0, 3, 6, 9, 10, 12, 13, 18, 19, 23, 25, 26, 30, 31, 32, 33, 35, 38, 39, 40, 41, 42, 47, 48, 49, 50, 51, 53, 55, 57, 58, 60, 63, 65, 66, 67, 68, 69, 70, 71, 72, 75, 76, 79, 80, 82, 83, 84, 85, 86, 87, 88, 89, 92, 93, 96, 98, 99, 100}

集合は{}で表示されます(データの型が変わるのでtype()でデータ型の表示も行っています)

最後に

重複のチェックというのは意外とよく使うと思います。

また、サンプルでは100件程度のデータですが、内容によってはより多くのデータを扱うことがあると思います。
そんな場合はとてもじゃないですが手で調べたりなんて出来ないかなと。

集合はpythonについては標準の関数として使えるので自作する必要もないので便利ですよね。

この記事がお役に立ったのなら嬉しいです。
最後までお読みいただきありがとうございました。

 

Ads Blocker Image Powered by Code Help Pro

Ads Blocker Detected!!!

We have detected that you are using extensions to block ads. Please support us by disabling these ads blocker.

タイトルとURLをコピーしました