-
Pythonで文字列をスキャンして特定の文字を探す方法
in演算子で特定の文字が含まれているか確認するPythonで、ある文字が文字列の中に存在するかどうかを調べたいときは、in 演算子を使うのが最もシンプルで読みやすい方法です。式は True または False を返します。>>> s = Hello world >>> e in s True複数の文字をまとめて検索する(set + any)検索したい文字が1つではなく複数ある場合は、セット(set)を活用すると効率的です。候補となる文字をあらかじめセットに登録しておき、any() 関数と組み合わせることで、「文字列中にこれらの文字が1つでも含まれているか」を
-
Pythonで文字列から日付を抽出・解析する方法
文字列から日付を抽出するには、まずその文字列内で日付がどのような形式(フォーマット)で表現されているかを把握しておく必要があります。基本的なアプローチとしては、正規表現(reモジュール)で日付部分を取り出し、datetime.datetime.strptime() で解析(パース)するという流れになります。例えば、文字列中に「YYYY-MM-DD」形式の日付が含まれている場合、以下のコードで抽出と解析ができます。コード例import re import datetime s = I have a meeting on 2018-12-10 in New York match = re.sea
-
【Python】文字列から整数値を抽出・取得する方法をわかりやすく解説
Pythonでは、正規表現(reモジュール)を使うことで、文字列の中から出現順にすべての整数値を抽出し、リストとして取得できます。以下のコード例をご覧ください。 正規表現ですべての整数値を抽出する import re s = 12 hello 52 19 some random 15 number # 数字部分を抽出し、int型に変換する list_of_nums = [int(n) for n in re.findall(r\d+, s)] print(list_of_nums) 出力結果 [12, 52, 19, 15] re.findall(r\d+, s) は、文字列 s から連続し
-
Pythonで文字列から特定の文字を削除する方法|replaceと正規表現の使い方
replace()メソッドで文字を削除するPythonの文字列(str)クラスには、文字列内の部分文字列を置換するためのreplace()メソッドが用意されています。削除したい文字を空文字列()に置き換えることで、実質的にその文字を取り除くことができます。>>> Hello people.replace(e, ) Hllo popl複数の文字を一度に削除する:正規表現を使う1行のコードで複数の文字をまとめて削除したい場合は、正規表現を使うのが便利です。削除したい文字を「|」で区切ってパターンを指定し、re.sub(置換対象パターン, 置換後の文字列, 対象文字列)という形式で
-
PythonでCSV文字列を配列(リスト)に変換する方法を徹底解説
PythonでCSV形式の文字列を配列(リスト)に変換する方法 CSV形式の文字列をPythonのリストに変換する最も簡単な方法は、str.split()メソッドでカンマ(,)ごとに文字列を分割し、さらにstrip()メソッドで各要素の前後にある余分な空白を取り除くことです。 1. split()とmap()を使う基本的な方法 >>> s = 1, John Doe, Boston, USA >>> print(list(map(str.strip, s.split(,)))) [1, John Doe, Boston, USA] このコードでは、まずs.
-
Pythonで文字列内のn番目に出現する部分文字列の位置を見つける方法
Pythonでは、split()メソッドを活用することで、文字列内にn番目に出現する部分文字列の位置(インデックス)を簡単に求めることができます。基本的な考え方手順は以下の通りです。対象の部分文字列を区切り文字として、最大 n+1 回だけ文字列を分割します。分割後のリストの要素数が n+1 より大きければ、その部分文字列は少なくとも n 回以上出現していることになります。出現位置は、「元の文字列の長さ − 最後の分割部分の長さ − 部分文字列の長さ」というシンプルな式で計算できます。コード例def findnth(string, substring, n): parts = strin
-
Pythonの文字列で数式を計算する方法:eval関数の使い方と注意点
Pythonでは、eval関数を使うことで、文字列として記述された数学式(数式表現)を実際に評価し、計算結果を取得できます。基本的な使い方例えば、(4*5) + 22 のように数式が含まれた文字列がある場合、それをevalに渡すだけで計算結果を得ることができます。>>> s = (4*5) + 22 >>> eval(s) 42evalの評価ルールevalは、括弧が省略された場合の演算子の優先順位などを含め、Pythonの通常の数式評価ルールに従って処理を行います。そのため、同じ式をPythonコードとして直接書いた場合とまったく同じ結果になります。セキュリ
-
Pythonの%sと%rの違い:いつ%rを使うべきか?
Pythonの文字列フォーマットにおいて、%sはstr()を使ってオブジェクトを文字列化し、%rはrepr()を使って文字列化します。整数などの一部のオブジェクトでは、両者は同じ結果を返します。しかし、repr()には重要な特徴があります。対応している型については、有効なPython構文として評価できる文字列を返すという規約に従う点です。つまり、その出力を使えば、元のオブジェクトを曖昧さなく再現できるのです。例えば、改行文字を含む文字列の場合、%sでは実際に改行されて表示されるのに対し、%rではエスケープシーケンスの\nがそのまま表示され、引用符も保持されます。具体例>>>
-
Pythonで「+」演算子を使わずに文字列を連結する方法
str.join()メソッドを使う「+」演算子を使わずに文字列を連結したい場合は、文字列クラスが標準で提供している str.join() メソッドを使用します。このメソッドは、連結したい文字列のリスト(イテラブル)を引数として受け取り、それらを1つの文字列にまとめて返します。重要なのは、join を呼び出す側の文字列が「区切り文字」として機能するという点です。つまり、渡したリスト内の各文字列の間に、その区切り文字が挿入されます。使用例>>> .join([Hello, World]) Hello World >>> .join([Hello, World,
-
Pythonで文字列が部分文字列の繰り返しかどうかを判定する方法
ある文字列が、その文字列自身の一部(部分文字列)の繰り返しのみで構成されているかどうかを確認したいケースはよくあります。例えば「abcabcabc」は「abc」の繰り返しですが、「abcdabc」はそうではありません。このような判定には、文字列を2つ連結した中に、元の文字列の「回転」が含まれるかどうかを調べる方法が有効です。これは「文字列が周期的であるのは、それが自分自身の自明でない回転と一致するとき、かつそのときに限る」という性質に基づいています。コード例以下のコードは、繰り返し単位(周期)を検出し、見つかった場合はその部分文字列を、見つからない場合は None を返します。def find
-
Pythonで文字列をJSONに変換する方法|json.loads()の使い方を解説
PythonでJSON文字列を辞書(dict)に変換する基本Pythonでは、標準ライブラリの json モジュールを使うことで、JSON形式の文字列を簡単に扱うことができます。文字列として渡されたJSONデータをPythonの辞書型に変換するには、json.loads() メソッドを使用します。json.loads() は、有効なJSON文字列を受け取り、それを解析して辞書オブジェクトを返します。返された辞書には、すべての要素にキーを使ってアクセスできます。json.loads()の使用例>>> import json >>> s = {success:
-
Pythonで文字列の末尾から部分文字列を削除する方法
Pythonで文字列の末尾から特定の部分文字列を削除したい場合は、まずその文字列が対象の部分文字列で終わっているかどうかを確認します。終わっている場合は、スライスを使って部分文字列を取り除いた残りの部分だけを取得します。endswith()とスライスを使う方法以下は、rchop関数を実装した例です。文字列が指定した末尾と一致するかをendswith()で判定し、一致すればスライスで末尾を切り取ります。def rchop(string, ending): if string.endswith(ending): return string[:-len(ending)]
-
Pythonで複数行の文字列を行ごとに分割するにはどうすればよいですか?
Pythonでは、文字列(str)クラスに用意されている splitlines() メソッドを使うことで、複数行の文字列を簡単に行ごとに分割できます。 例:splitlines() メソッドを使う方法 >>> some multi line string.splitlines() [some, multi line, string] このように、splitlines() を呼び出すだけで、各行が要素となったリストが返されます。 例:split() メソッドで区切り文字を指定する方法 また、split() メソッドの引数に区切り文字 \n を指定することでも、同様に分割できます
-
【Python入門】セミコロン区切りの文字列を辞書(dict)に変換する簡単な方法
セミコロン区切りの文字列を辞書に変換したい Pythonでは、次のような「キー=値」のペアがセミコロン(;)で連結された文字列を扱うことがあります。 Name1=Value1;Name2=Value2;Name3=Value3 このような文字列を辞書(dict)型に変換するのは非常に簡単です。基本的な考え方は以下の2ステップです。 文字列を split(;) でセミコロンごとに分割する 各要素をさらに split(=) でイコール記号ごとに分割し、その結果を dict() コンストラクタに渡す 具体的なコード例 実際のコードはわずか1行で書けます。リスト内包表記ではなくジェネレータ式を使う
-
Pythonの辞書(dict)を文字列に変換する方法|JSONによるシリアライズと復元の基本
辞書を文字列化するならJSONがベストPythonの辞書(dict)を文字列として保存・送信したい場合、最も推奨される形式はJSONです。標準ライブラリのjsonモジュールを使えば、追加インストール不要で簡単に相互変換が行えます。json.dumps(dict) … 辞書 → 文字列(シリアライズ)json.loads(string) … 文字列 → 辞書(デシリアライズ)基本的な使い方例えば、次のように辞書を文字列へ変換し、再び元の辞書へ戻すことができます。>>> import json>>> d = {id: 15, name: John}>>
-
Pythonで文字列を単語のリストに変換する方法
文字列を単語のリストに変換したい場合は、空白文字を基準に文字列を分割するだけで実現できます。最もシンプルな方法は、文字列クラスが標準で提供している split() メソッドを使うことです。このメソッドのデフォルトの区切り文字は空白であり、文字列に対して呼び出すと、空白文字の位置で自動的に分割してくれます。split()メソッドを使う方法引数を指定せずに split() を呼び出すだけで、連続する空白もまとめて処理され、単語ごとのリストが返されます。コード例>>> Please split this string.split() [Please, split, this, st
-
Pythonで文字列を大文字に変換する方法をわかりやすく解説
Pythonでは、文字列の大文字・小文字を操作するための便利なメソッドがいくつか用意されています。目的に応じて使い分けることで、効率的に文字列を加工できます。 先頭の1文字だけを大文字にする:capitalize()メソッド 文字列の最初の単語の先頭文字だけを大文字にしたい場合は、文字列クラスの capitalize() メソッドを使用します。このメソッドは、先頭以外の文字はすべて小文字に変換される点にも注意してください。 使用例 >>> s = my name >>> s.capitalize() My name スライスを使って手動で大文字にする方法 メ
-
Pythonの文字列(str)とバイト文字列(bytes)の違いをわかりやすく解説
文字列とバイト文字列の基本的な違いPythonにおける文字列(str)は「文字」の並びであり、これは抽象的な概念です。そのため、そのままではディスクに保存することができません。一方、バイト文字列(bytes)は「バイト」の並びであり、実際にディスクへ保存できるデータです。この両者をつなぐのがエンコーディング(符号化方式)です。エンコーディングには非常に多くの種類があり(理論上は無限に存在します)、変換を行う際にはどのエンコーディングが使われているのかを正しく把握しておく必要があります。なぜエンコーディングの指定が重要なのか同じバイト列でも、解釈するエンコーディングが異なれば、まったく別の文字列
-
Pythonで文字列の文字をアルファベット順に並べ替える方法
sorted()関数とjoin()メソッドを組み合わせる Pythonで文字列内の文字をアルファベット順に並べ替えるには、組み込み関数のsorted()を使用します。sorted()は並べ替えられた文字のリストを返すため、その後にjoin()メソッドでリストの要素を連結すると、並べ替え済みの文字列として取得できます。 >>> s = helloworld >>> .join(sorted(s)) dehllloorw この例では、文字列helloworldに含まれるすべての文字(重複を含む)がアルファベット順に並べ替えられ、dehllloorwという結果が得
-
Python 3で辞書を使って文字列をフォーマットする方法
Pythonでは、辞書(dict)を活用して文字列への値の埋め込み(補間)を行うことができます。この構文では、%と変換文字の間の括弧内に、辞書のキー名を指定します。例えば、キーcostに格納された浮動小数点数を$xxxx.xxの形式で表示したい場合は、表示したい位置に$%(cost).2fと記述します。辞書を使った文字列フォーマットの基本例以下は、辞書を使った文字列フォーマットで、文字列と数値を同時に補間・整形する例です。>>> print(%(language)s has %(number)03d quote types. % {language: Python, numb