【Python入門】セミコロン区切りの文字列を辞書(dict)に変換する簡単な方法
セミコロン区切りの文字列を辞書に変換したい
Pythonでは、次のような「キー=値」のペアがセミコロン(;)で連結された文字列を扱うことがあります。
"Name1=Value1;Name2=Value2;Name3=Value3"
このような文字列を辞書(dict)型に変換するのは非常に簡単です。基本的な考え方は以下の2ステップです。
- 文字列を
split(";")でセミコロンごとに分割する - 各要素をさらに
split("=")でイコール記号ごとに分割し、その結果をdict()コンストラクタに渡す
具体的なコード例
実際のコードはわずか1行で書けます。リスト内包表記ではなくジェネレータ式を使うことで、メモリ効率も良好です。
>>> s = "Name1=Value1;Name2=Value2;Name3=Value3"
>>> dict(item.split("=") for item in s.split(";"))
{'Name1': 'Value1', 'Name2': 'Value2', 'Name3': 'Value3'}
処理の流れを解説
このコードがどのように動作しているのか、順を追って見てみましょう。
s.split(";")→["Name1=Value1", "Name2=Value2", "Name3=Value3"]というリストが生成されます。- 各要素に対して
item.split("=")を実行すると、["Name1", "Value1"]のようなキーと値のリストになります。 dict()は「キーと値のペア」を受け取れるため、これらのリストから自動的に辞書が構築されます。
注意点:値に「=」が含まれる場合
値の中にイコール記号が含まれる可能性がある場合は、maxsplit 引数を使って最初の「=」だけで分割するのが安全です。
>>> s = "Name1=Value1;Name2=a=b"
>>> dict(item.split("=", 1) for item in s.split(";"))
{'Name1': 'Value1', 'Name2': 'a=b'}
このように、split() と dict() を組み合わせるだけで、セミコロン区切りの文字列を簡潔に辞書へ変換できます。設定文字列やクエリパラメータの解析など、さまざまな場面で活用できるテクニックなので、ぜひ覚えておきましょう。
-
Pythonで区切り文字(str)を指定して文字列を分割する方法
Pythonで文字列を特定の区切り文字で分割する方法は、主に2つあります。1つは文字列クラスの組み込みメソッド split() を使う方法、もう1つは正規表現モジュール re の re.split() を使う方法です。それぞれの使い方を詳しく見ていきましょう。 split()メソッドで文字列を分割する PythonのStringクラスには split() というメソッドが用意されており、区切り文字をオプション引数として指定できます。引数を省略した場合、デフォルトの区切り文字は空白(ホワイトスペース)になります。 >>> aa-ab-ca.split(-) [aa, ab, c
-
Pythonで文字列を逆順にする方法|スライスとreversed()の使い方を解説
Pythonでは、文字列スライスやrange演算子を活用することで、文字列を簡単に逆順(反転)にすることができます。この記事では、代表的な2つの方法をわかりやすく解説します。 方法1:スライス記法 [::-1] を使う(推奨・高速) 最もシンプルで一般的なのが、スライス記法を使う方法です。ステップに -1 を指定するだけで、文字列を後ろから前へ一文字ずつ取り出せます。 >>> Hello[::-1] olleH >>> Halloween[::-1] neewollaH スライスの仕組み 角括弧 [] の中には、コロン「:」で区切った3つの値を指定できます