
Pythonを使って日常的な問題を短いコードで効率的に解決する方法を10個ご紹介します。
はじめに
Pythonは、シンプルで読みやすい文法と豊富なライブラリが特徴のプログラミング言語です。Web開発やデータ分析、機械学習など幅広い分野で利用されており、ちょっとした日常的なタスクの自動化にも非常に役立ちます。今回は、10行以下の短いコードで「こんなこともできるんだ!」という具体例を10個ご紹介します。
1. ランダムなパスワード生成
使いどころ
新しいサービスに登録する際のパスワードをサッと作りたい
セキュアなパスワードを自動生成して管理したい
コード例
import random
import string
def generate_password(length=8):
chars = string.ascii_letters + string.digits + string.punctuation
return ''.join(random.choice(chars) for _ in range(length))
print(generate_password(12))
解説
string.ascii_letters にはアルファベットの大文字・小文字が含まれ、string.digits には数字、string.punctuation には記号が含まれています。
random.choice(chars) でランダムに1文字を選び、指定した桁数分だけ繰り返してパスワードを作成します。
パスワードの長さは引数 length で指定可能です。
2. テキストファイル内の特定の単語のカウント
使いどころ
テキストデータやログファイルの分析
キーワードがどれくらい登場しているかを素早く確認したい
コード例
word = "Python"
with open("example.txt", "r") as file:
text = file.read()
print(text.count(word))
解説
with open("example.txt", "r") as file: でテキストファイルを読み込み、 file.read() で内容を文字列として取得します。
Pythonの文字列メソッドである count() を使うと、特定の単語の出現回数を一度に数えられます。
大量のテキストファイルを扱う場合は、read() の代わりに少しずつ読み込む方法も考えられます。
3. 2つの辞書をマージ(Python 3.9+)
使いどころ
複数の設定ファイルや構成データを統合したい
キーと値のペアをまとめて管理したい
コード例
dict1 = {"a": 1, "b": 2}
dict2 = {"b": 3, "c": 4}
merged_dict = dict1 | dict2
print(merged_dict)
解説
Python 3.9以降、辞書同士のマージが演算子 | を使ってシンプルに書けるようになりました。
マージ元とマージ先で同じキーがある場合、右側の辞書の値で上書きされます(上の例では "b" が 2→3 に更新)。
4. リスト内の重複を削除
使いどころ
ユーザーIDや数値などの重複データを取り除く
要素の重複をチェックして整理したいとき
コード例
my_list = [1, 2, 2, 3, 4, 4, 5]
unique_list = list(set(my_list))
print(unique_list)
解説
Pythonの set 型は重複を許さない性質があるため、リストをセットに変換することでユニークな要素だけを取り出せます。
再びリストに変換したい場合は list() を使用します。
順序を維持したい場合には、別の方法(例えばOrderedDictやdict.fromkeys)を活用するとよいでしょう。
5. ファイルの行数をカウント
使いどころ
データ処理前にファイルの行数を確認したい
ログファイルなどの長さをざっと把握したい
コード例
with open("example.txt", "r") as file:
print(sum(1 for line in file))
解説
sum(1 for line in file) というイディオムで、ファイルの行ごとに1を足し合わせることで行数を数えられます。
大きなファイルでもメモリを圧迫しにくい方法です。
6. 現在の日時を取得
使いどころ
ログを残すときにタイムスタンプをつけたい
自動通知やレポート作成で現在日時を挿入したい
コード例
from datetime import datetime
now = datetime.now()
print(now.strftime("%Y-%m-%d %H:%M:%S"))
解説
datetime.now() で現在時刻のオブジェクトを取得します。
strftime() を使うと、任意のフォーマット(例: 年-月-日 時:分:秒)に変換できるため、使い勝手が良いです。
7. Webスクレイピング
使いどころ
Webサイトから情報を自動取得して分析したい
定期的に変動するデータを取得して更新情報を追跡したい
コード例
import requests
from bs4 import BeautifulSoup
url = "https://example.com"
response = requests.get(url)
soup = BeautifulSoup(response.text, "html.parser")
print(soup.title.string)
解説
requests モジュールはHTTP通信を簡単に行うためのライブラリです。
取得したHTMLを BeautifulSoup に渡してパースすることで、soup.title.string のようにHTML要素を手軽に取り出せます。
実際のスクレイピングでは、取得したい要素のタグやクラス名、IDなどを指定して情報を抜き出すのが一般的です。
8. リスト内の最大値と最小値を取得
使いどころ
配列の要素から最小値・最大値を素早く求めたい
数値データの分析の第一ステップとして確認する
コード例
numbers = [10, 20, 30, 40, 50]
print(max(numbers), min(numbers))
解説
max() と min() を使うと、リストから最大値と最小値を簡単に取得できます。
要素数が多いリストでも高速に結果を取得できるため、データ処理時の初期確認に役立ちます。
9. PDFの結合
使いどころ
レポートや書類を一つのPDFファイルにまとめたい
複数のPDFを整理して共有したい
コード例
from PyPDF2 import PdfMerger
merger = PdfMerger()
for pdf in ["file1.pdf", "file2.pdf"]:
merger.append(pdf)
merger.write("merged.pdf")
merger.close()
解説
PyPDF2 ライブラリを使って、複数のPDFを順番に結合できます。
PdfMerger.append() で追加した順番通りに結合され、最後に merger.write() で出力ファイルを作成します。
ページの抽出や分割など、PDFに関する多様な機能も備わっているので便利です。
10. リスト内の要素を条件付きでフィルタリング
使いどころ
データ分析や清掃の際に特定条件の要素だけを抽出したい
大きなリストから必要な部分だけ取り出して処理したい
コード例
numbers = [1, 2, 3, 4, 5, 6]
even_numbers = [n for n in numbers if n % 2 == 0]
print(even_numbers)
解説
リスト内包表記を使用すると、条件に合う要素のみを抽出した新しいリストを作成できます。
上の例では偶数(n % 2 == 0)だけをフィルタリングしています。
より複雑な条件にも対応できるため、データ処理で大いに活躍します。
まとめ
今回はPythonを活用した「10行以下」のサンプルコードを10個ご紹介しました。いずれも短く書けるうえに、日常的な場面で役立つものばかりです。Pythonの魅力は、豊富な標準ライブラリとサードパーティのパッケージにより、幅広い用途で「簡潔なコード」を書けるところにあります。
コードがシンプル: 学習コストが比較的低いため、初心者でもすぐに使い始められます。
ライブラリが豊富: 前述の requests や BeautifulSoup、PDF操作関連のライブラリなど目的別に豊富なパッケージが用意されています。
コミュニティが活発: わからないことがあれば、世界中の開発者コミュニティで情報を得やすいです。
ちょっとしたツール作成から大規模システムの構築まで、Pythonはさまざまな用途に対応可能です。ぜひこの機会にPythonの便利さを体感し、自分なりの自動化ツールや分析スクリプトを作ってみてください。
ここから先は
この度のご縁に感謝いたします。貴方様の創作活動が、衆生の心に安らぎと悟りをもたらすことを願い、微力ながら応援させていただきます。