Pythonで数値を3桁ごとにカンマ区切りして出力する方法
3桁以上の数値を扱う際には、読みやすさのためにカンマで桁区切りを行いたい場面が多くあります。特に会計業界や金融分野では、1,000単位ごとにカンマを挿入した表記は事実上の標準となっています。この記事では、Pythonを使って数値の適切な位置にカンマ(桁区切り文字)を挿入する方法を解説します。
format関数による桁区切り
Pythonのformat関数(f文字列)では、次のような書式指定子を使うことで、カンマ区切りの表示を簡単に実現できます。
(f"{num:,d}")
# 「:」以降が書式指定子
# 「,」が桁区切り文字(カンマ)
# 「d」は10進整数であることを示す指定
ポイントは「,」の部分です。この記号を書式指定子の中に入れることで、3桁ごとにカンマが自動的に挿入されます。
整数の場合の例
まずは整数に対して適用してみましょう。
print(f'{1445:,d}')
print(f'{140045:,d}')
出力結果
上記のコードを実行すると、次のような結果が得られます。
1,445 140,045
f文字列を使わず、format() 関数を直接呼び出す format(1445, ",") のような書き方でも同じ結果になります。
浮動小数点数(float)の場合
float型の数値を扱う場合は、書式指定を少し変える必要があります。以下のように ,.2f を指定すると、3桁ごとのカンマ区切りに加えて、小数点以下2桁までが表示されます。小数第3位以降の桁は四捨五入されて無視されます。
例
print("{:,.2f}".format(3435.242563))
出力結果
上記のコードを実行すると、次のような結果が得られます。
3,435.24
このように、書式指定子を組み合わせることで、整数・小数どちらの場合でも金額表記などに適したカンマ区切りの出力を手軽に実装できます。請求書やレポートなど、数値の可読性が求められる場面でぜひ活用してください。
-
PythonのNumPy einsum()を使ってアインシュタインの縮約記法でテンソルの縮約を行う方法
Pythonでアインシュタインの縮約記法(Einstein summation convention)を用いたテンソルの縮約(Tensor contraction)を行うには、numpy.einsum() メソッドを使用します。第1引数は「subscript(添字)」で、縮約に使用する添字ラベルをカンマ区切りのリストとして指定します。第2引数は「operands(オペランド)」で、演算の対象となる配列を渡します。einsum() メソッドは、オペランドに対してアインシュタインの縮約記法を評価します。この記法を活用すると、多次元配列に対する線形代数の代表的な演算の多くを、非常にシンプルな形式で表
-
Pythonでn個のノードから構成できる二分探索木(BST)の数を求める方法
問題の概要互いに異なるn個のノードが与えられたとき、それらを二分探索木(BST:Binary Search Tree)として配置する方法が何通りあるかを求めることを考えます。二分探索木には「左部分木には常に親より小さい値が、右部分木には常に親より大きい値が格納される」という重要な性質があります。この問題を解くには、カタラン数(Catalan Number)を利用します。カタラン数 C(n) は、n個の異なるキーから構成できる二分探索木の総数を正確に表すことが知られています。計算式は次のとおりです。$$C(n)=\frac{(2n)!}{(n+1)!\times n!}$$例えば、入力が n =