-
Pythonで文字列と数値を連結する方法をわかりやすく解説
Pythonで文字列と数値を連結する基本の方法Pythonでは、文字列と数値をそのまま + 演算子で結合することはできません。連結するには、str() 関数を使って数値を文字列型に変換する必要があります。以下は基本的な例です。>>> a = string >>> b = 1 >>> print(a + str(b)) string1このように str(b) によって数値 1 が文字列 1 に変換され、文字列同士として正しく連結されます。Python 2で使えたバッククォート記法についてPython 2では、数値をバッククォート(`)で囲むこ
-
Pythonで文字列から印刷できない文字(制御文字)を削除する方法
Pythonで文字列を扱っていると、目に見えない制御文字(印刷できない文字)が混入し、表示やデータ処理に支障をきたすことがあります。この記事では、ASCII文字のみの場合とUnicodeに対応させたい場合の2つのアプローチで、印刷できない文字を削除する方法を解説します。 方法1:string.printableでASCII文字のみをフィルタリングする 対象の文字列がASCII文字だけで構成されている場合、最も簡単なのはstringモジュールのprintable定数を使う方法です。printableには、印刷可能なすべてのASCII文字が格納されているため、これに含まれない文字を除外すれば制御文
-
Pythonでバックスラッシュによるエスケープを解除する方法
Pythonでバックスラッシュのエスケープを解除する2つの方法Pythonでバックスラッシュ(\)によってエスケープされた文字列を元に戻す(エスケープ解除する)には、主に2つの方法があります。それぞれの使い方を詳しく見ていきましょう。方法1:ast.literal_evalを使う1つ目は、ast.literal_evalを使って文字列を評価する方法です。この方法では、対象の文字列をさらに別の層の引用符で囲む必要がある点に注意してください。例えば以下のように記述します。>>> import ast>>> a = "Hello,\\nworld&quo
-
Pythonで文字列(str)と数値(int)を連結する方法をわかりやすく解説
Pythonでは、文字列(str型)と数値(int型)をそのまま + 演算子で連結することはできません。異なる型同士の連結はエラーになるため、数値をあらかじめ文字列に変換(キャスト)しておく必要があります。str()関数を使った基本的な連結方法最も一般的な方法は、str() 関数を使って数値を文字列に変換してから連結するやり方です。>>> a = string >>> b = 1 >>> print(a + str(b)) string1このように、str(b) によって整数 1 が文字列 1 に変換されるため、文字列同士の連結として正しく
-
Pythonの文字列からANSIエスケープシーケンスを削除する方法
Pythonの文字列からANSIエスケープシーケンスを削除する方法ターミナル上でテキストに色をつける際などに使われるANSIエスケープシーケンスは、ログファイルやコマンドの出力結果に混入すると、文字列の処理や解析の妨げになることがあります。Pythonでは、正規表現(regex)を使うことで、こうしたエスケープシーケンスを簡単に取り除けます。手順はシンプルで、reモジュールのre.sub()関数を使い、エスケープシーケンスにマッチした部分を空文字列()に置き換えるだけです。ANSIエスケープシーケンスを削除するための正規表現以下の正規表現パターンが、ANSIエスケープシーケンスの検出と削除に利
-
Pythonで文字列を空白で分割する方法:split()と正規表現の使い方
Pythonでは、文字列を空白(スペース・タブ・改行など)で分割する場面がよくあります。ユーザー入力の解析やテキストデータの処理などがその代表例です。この記事では、空白で文字列を分割する代表的な2つの方法を、具体例とともにわかりやすく解説します。 方法1:split()メソッドを使う(おすすめ) 最もシンプルで一般的な方法は、文字列クラスに組み込まれた split() メソッドを使うことです。引数を指定しない場合、デフォルトの区切り文字として「空白文字」が使用され、連続した空白も自動的に適切に処理されます。 >>> Please split this string.spli
-
Pythonにおけるエンコードとデコードの違いとは?基本概念と使い方を解説
エンコードとデコードの基本的な違い Pythonにおけるエンコードとは、Unicode文字列をバイト列(bytes)として表現する処理のことです。逆に、デコードとは、バイト列をUnicode文字列に変換し直す処理を指します。 つまり両者は正反対の操作であり、エンコードが「文字 → バイト」への変換、デコードが「バイト → 文字」への変換となります。 それぞれを使う場面 通常、Unicode文字列は以下のような入出力(I/O)を行う際にエンコードします。 ネットワーク経由でデータを送信するとき ディスク上のファイルに保存するとき 一方、デコードは次のような場面で行います。 ネットワークか
-
Pythonで文字列のすべての順列を取得する方法【itertoolsと再帰で解説】
itertools.permutationsを使った方法 Pythonで文字列のすべての順列(並べ替え)を求める最も簡単な方法は、標準ライブラリのitertoolsモジュールにあるpermutations()関数を使用することです。この関数は、イテラブルなオブジェクトから要素を取り出し、指定した長さrの順列をタプルとして順番に返します。 結果を文字列として取得するには、関数の戻り値をループで処理し、各タプルの要素をjoin()で連結します。以下に具体例を示します。 from itertools import permutations result = [.join(p) for p in p
-
Pythonで文字列をバイナリ(2進数)に変換する方法をわかりやすく解説
Pythonで文字列をバイナリに変換する基本の考え方Pythonで文字列をバイナリ(2進数)表現に変換するには、文字列内の各文字を1つずつ取り出し、それぞれを2進数へ変換したうえで、結果をひとつの文字列として連結します。各文字の文字コードは ord() 関数で取得でき、format() 関数に「b」フォーマット指定子を渡すことで、簡単に2進数形式へ整形できます。format() と ord() を使った変換方法最もシンプルなのが、format(ord(x), b) を使って各文字 x を2進数の文字列に変換する方法です。次の例では、文字列 hello world の各文字をスペース区切りのバイ
-
Pythonで小数点以下2桁の浮動小数点数を表示・整形する方法を徹底解説
Pythonで小数点以下2桁に整形して表示する基本の方法Pythonでは、文字列フォーマット(書式指定)を使うことで、浮動小数点数を任意の桁数で整えて表示できます。たとえば、全体の幅を12文字とし、小数点以下を2桁に揃えて出力したい場合は、format()メソッドを使って次のように書きます。>>> x = 12.35874>>> print({:12.2f}.format(x)) 12.36この例では、書式指定子 {:12.2f} の意味は以下の通りです。12:全体の最小幅を12文字にする(右寄せで空白が詰められる).2f:小数点以下2桁の固定小
-
Pythonで文字列から文字を削除する方法|スライス・replace・正規表現の使い分け
Pythonで文字列から特定の文字を削除したい場面はよくあります。目的に応じていくつかの方法があるため、それぞれの特徴と使い方を解説します。 特定のインデックスの文字を削除する(スライス) 文字列の中から指定した位置(インデックス)の1文字だけを削除したい場合は、文字列スライスを使うのが最もシンプルです。削除したい位置の前後をつなぎ合わせることで、その文字だけを取り除いた新しい文字列を作成できます。 >>> s = Hello World >>> s[:4] + s[5:] Hell World この例では、インデックス4にある「o」を除外し、それ以外の部
-
Pythonで文字列がASCIIのみで構成されているかどうかを確認する方法
Pythonで文字列がすべてASCII文字だけで構成されているかどうかを判定したい場面は少なくありません。ここでは、代表的な2つの方法をわかりやすく解説します。 方法1:all()とord()を使って1文字ずつチェックする 最もシンプルな方法は、文字列内の各文字を順番に調べ、その文字コード(Unicodeコードポイント)が128未満であるかを確認することです。ASCIIは0〜127のコードポイントで定義されているため、すべての文字がこの範囲内であれば、その文字列はASCIIのみで構成されていると判断できます。 def is_ascii(s): return all(ord(c) <
-
Pythonで文字列から数字以外の文字を削除する方法を解説
Pythonでは、文字列から数字以外の文字(アルファベットや記号など)を取り除く方法がいくつかあります。ここでは、代表的な3つの手法を具体的なコード例とともに紹介します。 1. 内包表記とisdigit()メソッドを使う方法 最もシンプルでPythonらしい書き方は、for ... ifによる内包表記を使って数字以外の文字を除外する方法です。isdigit()メソッドは、文字が数字かどうかを判定してくれます。 >>> s = H3ll0 P30P13 >>> .join(i for i in s if i.isdigit()) 303013 このコードでは
-
Pythonで変数が文字列型(str)かどうかを判定する方法
isinstance()関数を使った文字列型の判定Pythonでは、組み込み関数 isinstance(var, class) を使うことで、変数 var が指定したクラスのインスタンスであるかどうかを簡単に確認できます。変数が文字列型かどうかを判定したい場合も、この関数を使うのが最も一般的で推奨される方法です。Python 2.x の場合Python 2.x では、str(バイト文字列)と unicode の両方の基底クラスとして basestring が定義されています。そのため、basestring を使えば、どちらの文字列型にも対応した判定が可能です。>>> s =
-
Pythonで文字列から部分文字列を抽出する方法|正規表現のグループキャプチャ活用
正規表現のグループキャプチャを使った部分文字列の抽出 Pythonで文字列の中から特定の部分文字列を取り出したい場合、reモジュールの正規表現における「グループキャプチャ」を利用するのが効果的です。この手法を使うには、抽出したい部分文字列のフォーマットや、その前後の文脈をある程度把握しておく必要があります。 例えば、文章の中から「$xxx,xxx.xx」という形式で書かれた金額情報を抽出したいとします。その場合は、re.search()と括弧で囲んだキャプチャグループを次のように組み合わせます。 import re text = The phone is priced at $15,745.
-
Pythonで文字列を連結するおすすめの方法は?【+演算子とjoin()の使い分け】
Pythonで文字列を連結する基本的な方法文字列変数に別の文字列を追加(連結)する場合、最も推奨される方法は + または += 演算子を使うことです。これらの方法はコードの可読性が高く、実行速度も速いというメリットがあります。また、+ と += の間に処理速度の違いはほとんどありません。なお、2つの文字列を扱うケースでは append() を利用することも可能です。文字列のリストを連結するときは join() が最適複数の文字列を要素として持つリストを1つの文字列にまとめたい場合は、join() メソッドを使うのがベストプラクティスです。join() は文字列のリストを受け取り、それらを効率的
-
Pythonで文字列から特殊文字・句読点・空白をすべて削除する方法
Pythonで文字列に含まれる特殊文字、句読点、空白などをまとめて削除したい場合、いくつかの簡単な方法があります。ここでは代表的な2つのアプローチを紹介します。 方法1:内包表記とisalnum()を使う 文字列を1文字ずつ反復処理し、isalnum()メソッドで英数字のみを抽出する方法です。isalnum()は、その文字がアルファベットまたは数字であればTrueを返すため、それ以外の記号や空白は自動的に除外されます。 >>> string = Hello $#! People Whitespace 7331 >>> .join(e fo
-
Pythonで文字列内の最長の反復部分文字列を見つける方法
Pythonでは、collectionsモジュールのdefaultdictを使うことで、入力文字列の各位置から始まるすべての部分文字列の出現回数を効率的に集計できます。 ポイントとなるのはgetsubsメソッドです。これはジェネレータ関数として実装されており、呼び出されるたびに指定位置から始まる部分文字列を、完全な文字列から1文字ずつ短くしたものまで順番にyield(生成)していきます。 コード例 from collections import defaultdict def getsubs(loc, s): substr = s[loc:] i = -1 while
-
Pythonで文字列がfloatに変換可能かどうかを判定する方法
Pythonでは、文字列がfloat(浮動小数点数)として有効かどうかを確認したい場面がよくあります。最もシンプルで確実な方法は、float()関数をtry-exceptブロックで囲むことです。 基本的な変換方法 文字列をfloatに変換するには、次のように記述します。 try: print(float(112.15)) except ValueError: print(Cannot parse) このコードを実行すると、以下の出力が得られます。 112.15 変換できない場合の挙動 もし文字列が数値として解析できない場合(例えば abc のような文字列)、ValueError
-
Pythonで3つ以上の文字列から最長の共通部分文字列を見つける方法【動的計画法】
最長共通部分文字列(Longest Common Substring)を求めるアルゴリズムは、動的計画法(DP)を用いることで効率的に解けます。一般的なDP実装では、O(nm)の時間計算量で処理が可能です(n、mは比較対象となる文字列の長さ)。以下に、最長共通部分文字列アルゴリズムの実装例を示します。 実装例 def longest_common_substring(s1, s2): m = [[0] * (1 + len(s2)) for i in range(1 + len(s1))] lon