Pythonのデータ型変換関数一覧と使い方|int・str・floatなどをわかりやすく解説
Pythonにおけるデータ型変換とは
Pythonでは、処理の中であるデータ型から別のデータ型へ値を変換したい場面がよくあります。たとえば、ユーザー入力として受け取った文字列を数値として計算したり、数値を読みやすい形で文字列に整えたりするケースです。
Pythonの型変換(キャスト)は非常にシンプルで、型名をそのまま関数のように呼び出すだけで実行できます。組み込みの変換関数が多数用意されており、いずれも変換結果を表す新しいオブジェクトを返すのが特徴です。
主な型変換関数の一覧
以下に、Pythonで利用できる代表的なデータ型変換関数をまとめました。
| No. | 関数 | 説明 |
|---|---|---|
| 1 | int(x [, base]) | xを整数(int)に変換します。xが文字列の場合、第2引数baseで基数(2進数・8進数・16進数など)を指定できます。 |
| 2 | long(x [, base]) | xを長整数(long)に変換します。※Python 2専用の関数で、Python 3では廃止されintに統合されました。 |
| 3 | float(x) | xを浮動小数点数(float)に変換します。 |
| 4 | complex(real [, imag]) | 実部real・虚部imagを持つ複素数を作成します。 |
| 5 | str(x) | オブジェクトxを、人が読みやすい文字列表現に変換します。 |
| 6 | repr(x) | オブジェクトxを、eval()で評価可能な式の形をした文字列に変換します。 |
| 7 | eval(str) | 文字列をPythonの式として評価し、結果のオブジェクトを返します。 |
| 8 | tuple(s) | sをタプルに変換します。 |
| 9 | list(s) | sをリストに変換します。 |
| 10 | set(s) | sをセット(集合)に変換します。重複する要素は自動的に削除されます。 |
| 11 | dict(d) | 辞書(dict)を作成します。dには(key, value)形式のタプルからなるシーケンスを指定します。 |
| 12 | frozenset(s) | sを変更不可能なセット(frozenset)に変換します。 |
| 13 | chr(x) | 整数xを、対応するUnicodeコードポイントの1文字に変換します。 |
| 14 | unichr(x) | 整数xをUnicode文字に変換します。※Python 2専用で、Python 3ではchr()に統合されました。 |
| 15 | ord(x) | 1文字xを対応する整数値(コードポイント)に変換します。chr()の逆の操作です。 |
| 16 | hex(x) | 整数xを「0x」付きの16進数文字列に変換します。 |
| 17 | oct(x) | 整数xを「0o」付きの8進数文字列に変換します。 |
型変換の使用例
ここでは、よく使われる変換関数の具体的な使い方をコード例とともに紹介します。
数値への変換
# 文字列を整数に変換
num = int('100')
print(num + 1) # 101
# 文字列を浮動小数点数に変換
pi = float('3.14')
print(pi * 2) # 6.28
# 基数を指定して変換
print(int('1010', 2)) # 10(2進数として解釈)
print(int('ff', 16)) # 255(16進数として解釈)文字列への変換
# 数値を文字列に変換
s = str(123)
print(s + '円') # 123円
# リストや辞書も文字列化できる
print(str([1, 2, 3])) # [1, 2, 3]コレクション間の変換
# 文字列をリストに変換(1文字ずつ要素になる)
print(list('abc')) # ['a', 'b', 'c']
# リストをタプルに変換
print(tuple([1, 2, 3])) # (1, 2, 3)
# 重複を除きたい場合はset()が便利
print(set([1, 2, 2, 3])) # {1, 2, 3}
# キーと値のペアから辞書を作成
print(dict([('a', 1), ('b', 2)])) # {'a': 1, 'b': 2}文字と整数(コードポイント)の相互変換
# 文字 → 整数
print(ord('A')) # 65
# 整数 → 文字
print(chr(65)) # A
# 16進数・8進数の文字列へ変換
print(hex(255)) # 0xff
print(oct(8)) # 0o10型変換時の注意点
- 変換できない値を渡すとエラーになる:たとえばint('abc')はValueErrorを発生させます。ユーザー入力などを変換する場合は、try-exceptによるエラーハンドリングを組み合わせましょう。
- eval()の使用には注意が必要:eval()は任意のPythonコードを実行できてしまうため、外部からの入力に対して使うと重大なセキュリティリスクにつながります。
- float()の精度誤差に注意:浮動小数点数は2進数で管理されるため、0.1 + 0.2が厳密には0.3にならないといった誤差が生じます。金額計算など高い精度が必要な場合はdecimalモジュールの利用を検討してください。
まとめ
Pythonの型変換は、型名を関数として呼び出すだけで直感的に行えるのが魅力です。数値・文字列・コレクションなど、目的に応じて適切な変換関数を選ぶことで柔軟なデータ処理が可能になります。ただし、変換できない値やeval()の扱いには十分注意し、必要に応じてエラー処理を組み合わせて安全に活用しましょう。
-
Pythonで身につける統計的思考 ― グラフとチャートによるデータ分析入門
統計学は、機械学習(ML)やAIを学ぶうえで欠かせない基礎知識です。これらの技術分野ではPythonが事実上の標準言語となっているため、統計分析を取り入れたPythonプログラムの書き方をマスターすることが重要になります。本記事では、さまざまなPythonライブラリを活用してグラフやチャートを作成する方法を解説します。多様なチャートを使いこなせるようになると、データを素早く分析し、結論を視覚的に導き出せるようになります。 データの準備 ここでは、さまざまな種子(シード)に関するデータを含むデータセットを使用します。このデータセットはKaggleから入手でき、URLは後述のサンプルコード内に記載
-
Pythonのデータ型と型変換をわかりやすく解説
この記事では、Pythonにおける主要なデータ型の種類と、それぞれの使い方、そしてデータ型同士を変換する方法について詳しく解説します。 Pythonの組み込みデータ型一覧 Pythonでは変数を作成・宣言する際に、さまざまなデータ型を持たせることができます。Pythonには以下のような組み込みデータ型が用意されています。 str(文字列) int、float、complex(数値) list、tuple(シーケンス) dict(辞書) set(集合) bool(ブール値) bytes、bytearray(バイナリ) それでは、各データ型の特徴と作成方法を順番に見ていきましょう。 文字列型: