Pythonで数値から下位K桁を抽出する方法
Pythonで数値リストから下位(後ろの)K桁を抽出したい場合、シンプルなリスト内包表記と剰余演算子「%」、べき乗演算子「**」を組み合わせることで簡単に実現できます。
この記事では、その具体的な方法をサンプルコードとともに解説します。
実装例
以下のコードでは、整数のリストから各要素の下位3桁を取り出しています。
my_list = [51645, 24567, 36743, 89452, 2122]
print("元のリスト:")
print(my_list)
K = 3
print("Kの値:")
print(K)
my_result = [element % (10 ** K) for element in my_list]
print("結果:")
print(my_result)
出力結果
元のリスト: [51645, 24567, 36743, 89452, 2122] Kの値: 3 結果: [645, 567, 743, 452, 122]
処理の流れと解説
まず、整数を要素とするリストを定義し、コンソールに表示します。
次に、抽出する桁数を表す変数Kを定義し、こちらもコンソールに出力します。
リスト内包表記を使ってリストの各要素を順番に処理します。このとき、「10 ** K」によって10のK乗(この例では10の3乗=1000)が計算されます。
各要素をその値(1000)で割った余りを剰余演算子「%」で求めます。ある数を1000で割った余りは、必ずその数の下位3桁と一致するため、これにより下位K桁が抽出されます。
得られた結果は新しいリストとしてまとめられ、変数に代入されます。
最後に、その結果をコンソールに表示して処理完了です。
ポイント
この手法の核心は剰余演算の性質です。たとえば51645を1000で割ると商は51、余りは645となります。つまり「element % (10 ** K)」は常に数値の下位K桁を返します。
また、リスト内包表記を使うことで、forループを明示的に書かずとも簡潔で読みやすいコードになります。大量のデータを扱う場合でもパフォーマンスよく処理できるのがPythonの魅力です。
-
【Python入門】正規表現でテキストから数値を抽出する方法をわかりやすく解説
Pythonでテキスト処理を行う際、「文章の中から数字だけを取り出したい」という場面は非常によくあります。そんなときに活躍するのが、標準ライブラリの re モジュールと正規表現です。この記事では、目的別に使える抽出パターンをサンプルコード付きで解説します。 数字を1文字ずつ個別に抽出する テキスト内のすべての数字を1桁ずつバラバラに抽出したい場合は、正規表現パターン \d を使用します。\d は「半角数字1文字」にマッチするメタ文字です。 サンプルコード import re s = 12345 abcdf 67 result = re.findall(r\d, s) print(result
-
Pythonで文字列から数字を抽出する方法【isdigitと正規表現の使い分け】
正の整数だけを抽出するシンプルな方法文字列に含まれる正の整数だけを取り出したい場合は、split()で空白ごとに文字列を分割し、isdigit()で各要素が数字のみで構成されているかを判定する方法が手軽です。>>> s = h3110 23 cat 444.4 rabbit 11 2 dog >>> [int(x) for x in s.split() if x.isdigit()] [23, 11, 2]この方法では、すべてが数字で構成された要素だけが整数に変換されてリストに追加されます。そのため「h3110」のように文字と数字が混ざった語句や、「444.