operator
オペレーター(標準ライブラリ)
意味 演算子機能拡張
operatorとは?
Pythonでは、+ や - などの演算子はそのままでは数値演算にしか使えませんが、operatorモジュールを使うと、独自のクラスに対してもこれらの演算子を使えるように拡張できます。例えば、独自のクラスで「+」演算子を使って独自の計算処理を実装したりできます。
operatorの具体的な使い方
演算子の実装例
from operator import add, mul
class Vector:
def __init__(self, x, y):
self.x = x
self.y = y
def __add__(self, other):
return Vector(self.x + other.x, self.y + other.y)
def __mul__(self, scalar):
return Vector(self.x * scalar, self.y * scalar)
def __str__(self):
return f'Vector({self.x}, {self.y})'
# ベクトルの作成
v1 = Vector(1, 2)
v2 = Vector(3, 4)
# addを使用してベクトルの加算
result_add = add(v1, v2)
print(f'加算結果: {result_add}')
# mulを使用してベクトルのスカラー倍
result_mul = mul(v1, 3)
print(f'スカラー倍結果: {result_mul}')
👇出力結果
加算結果: Vector(4, 6)
スカラー倍結果: Vector(3, 6)
この例では、operatorモジュールのaddとmul関数を使用して、カスタムクラスVectorの加算とスカラー倍演算を実装しています。Vectorクラスは__add__と__mul__メソッドを定義しており、これらのメソッドがoperator.addとoperator.mulによって呼び出されます。これにより、ベクトルの加算や乗算を直感的に行うことができます。
関数型プログラミングでの使用例
from operator import itemgetter
from functools import reduce
# 商品データのリスト
products = [
{'name': 'りんご', 'price': 100, 'quantity': 3},
{'name': 'バナナ', 'price': 80, 'quantity': 5},
{'name': 'オレンジ', 'price': 120, 'quantity': 2}
]
# 合計金額を計算
total = reduce(lambda x, y: x + y['price'] * y['quantity'], products, 0)
print(f'合計金額: {total}円')
# 価格でソート
sorted_products = sorted(products, key=itemgetter('price'))
print('\n価格順に並べ替え:')
for product in sorted_products:
print(f'{product["name"]}: {product["price"]}円')
👇出力結果
合計金額: 820円
価格順に並べ替え:
バナナ: 80円
りんご: 100円
オレンジ: 120円
この例では、operatorモジュールのitemgetter関数を使用して、関数型プログラミングのアプローチで商品データを処理しています。reduceとラムダ関数を組み合わせて合計金額を計算し、itemgetterを使用して商品を価格順にソートしています。itemgetterは、辞書やオブジェクトから特定のキーや属性を取得する関数を生成するため、ソートキーとして使用すると便利です。
operatorに関するよくある質問
operatorが学べる書籍の紹介
「プログラミング単語帳」を使って、プログラミングの単語を英単語のように学習してみませんか?
プログラミング単語帳には、Pythonのoperatorやitertools、pdb、datetime、などのような実務でよく使われる単語が数百以上収録されています。
この書籍には、プログラミングの単語の意味や読み方、単語の使い方がわかる例文などが掲載されており、いつでもどこでもプログラミングの学習ができます。
よく使われる単語にだけ絞って学習することができるので、効率的にプログラミングが学習できます。
HTML編、CSS編、JavaScript編、PHP編、Ruby編、その他単語編の6シリーズ分が公式ストアにて販売中です。気になった方はぜひ購入してみてください。
Pythonを学べる「プログラミング単語帳」アプリ
プログラミング単語帳がアプリになりました!Pythonはもちろん、10種類のプログラミング言語の中から、よく使われる単語をスマホで学習できます。
収録単語は2,000単語以上!
現在は、HTML、CSS、JavaScirpt、PHP、Laravel、Ruby、Python、MySQL、Linux、など10カテゴリーの単語帳が1つのアプリに収録されています。
いつでも、どこでも、隙間時間を有効活用して、プログラミングを効率的に学べるので、ぜひダウンロードしてみてください。
2024年7月アップデート情報:「Laravel」カテゴリーが追加されましました!
2024年8月アップデート情報:「MySQL」「Linux」カテゴリーが追加されましました!