Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonの型変換を徹底解説|文字列・数値・コンテナ型の変換方法

Pythonでは、データを簡単に別の型へ変換することができます。型変換(キャスト)にはさまざまな組み込み関数が用意されており、文字列から数値への変換や、リスト・タプル・セットといったコンテナ型同士の変換などが可能です。

この記事では、Pythonで行える主な型変換の方法を、具体的なサンプルコードとともに分かりやすく解説します。

文字列を数値型に変換する

文字列型のオブジェクトを数値に変換するには、int() や float() などの関数を使用します。int() 関数を使うと、数値を表す文字列を整数値(10進数)に変換できます。引数には文字列を指定し、デフォルトの基数は10です。また、第2引数で基数を指定することで、16進数や12進数など任意の進法で書かれた文字列を10進数の整数に変換することも可能です。

同様に、float() 関数を使えば、小数形式の値を含む文字列を浮動小数点数に変換できます。

サンプルコード

str_number = '56'
print(int(str_number))    # デフォルトの基数は10
print(int(str_number, 16))    # 16進数として解釈して変換
print(int(str_number, 12))    # 12進数として解釈して変換
str_number = '25.897'
print(float(str_number))    # 文字列を浮動小数点数に変換

実行結果

56
86
66
25.897

文字とASCIIコードの変換、および各進数への変換

文字列は文字の集まりですが、Pythonでは文字のASCIIコード(Unicodeコードポイント)を直接取得することはできません。文字をASCII値に変換するには、ord() 関数を使用します。

さらに、hex()、oct()、bin() の各関数を使うことで、10進数の整数をそれぞれ16進数、8進数、2進数に変換できます。

サンプルコード

print('ASCII value of "G" is: ' + str(ord('G')))
print('Hexadecimal value of 254 is: ' + str(hex(254)))
print('Octal value of 62 is: ' + str(oct(62)))
print('Binary value of 56 is: ' + str(bin(56)))

実行結果

ASCII value of "G" is: 71
Hexadecimal value of 254 is: 0xfe
Octal value of 62 is: 0o76
Binary value of 56 is: 0b111000

コンテナ型同士の変換

Pythonには、リスト(list)、タプル(tuple)、セット(set)など、さまざまなコンテナ型が用意されています。list()、tuple()、set() などの関数を使えば、あるコンテナ型から別のコンテナ型へ簡単に変換できます。特に set() は重複要素を持たない性質があるため、リストから重複を除去したい場合にも活用できる便利な関数です。

サンプルコード

my_list = [10, 20, 30, 40, 50]
my_set = {10, 10, 20, 30, 20, 50, 20}
print('From list to tuple: ' + str(tuple(my_list)))
print('From list to set: ' + str(set(my_list)))
print('From set to list: ' + str(list(my_set)))

実行結果

From list to tuple: (10, 20, 30, 40, 50)
From list to set: {40, 10, 50, 20, 30}
From set to list: [10, 20, 50, 30]

複素数への変換

Pythonには複素数を扱うための complex クラスが標準で組み込まれています。complex() を利用すると、実部と虚部となる2つの整数から複素数を生成できます。

サンプルコード

my_complex = complex(10, 5)  # 実部10・虚部5の複素数に変換
print(my_complex)

実行結果

(10+5j)

タプルから辞書への変換

タプルはPythonにおける重要なコンテナのひとつで、順序付きのデータを格納するために使用されます。キーと値のペアからなる2要素のタプルをまとめたオブジェクトは、dict() 関数を使って辞書型に変換できます。

サンプルコード

my_tuples = (('Tiger', 4), ('Cat', 6), ('Dog', 8), ('Elephant', 10))
my_dict = dict(my_tuples)
print(my_dict)

実行結果

{'Tiger': 4, 'Elephant': 10, 'Dog': 8, 'Cat': 6}

まとめ

Pythonの型変換は、int()、float()、ord()、hex()、bin()、list()、tuple()、set()、dict() など、豊富な組み込み関数によって柔軟に行えます。文字列と数値の相互変換や進数変換、コンテナ型同士の変換を使いこなせるようになると、データ処理の幅が大きく広がります。ぜひ実際にコードを動かしながら、それぞれの挙動を確認してみてください。

  1. Pythonでパターンを出力する方法|三角形・数字・アルファベット・ピラミッドのコード例

    Pythonでパターンを出力するには、ネストされた(入れ子構造の)forループを使用します。外側のループで行数を制御し、内側のループで列数を処理します。そしてprint文を工夫することで、目的に応じたさまざまなパターンを作成できます。パターンには、星(アスタリスク)パターン、数字パターン、アルファベットパターンなどがあり、三角形やピラミッドなど、さまざまな形状にも対応できます。パターン出力の基本これらのパターンは、print文を少し変更しながらforループを組み合わせることで出力できます。基本的な考え方はどのパターンも共通しており、違いはごくわずかです。ここからは、代表的なパターンのコードを実

  2. Pythonのデータ型と型変換をわかりやすく解説

    この記事では、Pythonにおける主要なデータ型の種類と、それぞれの使い方、そしてデータ型同士を変換する方法について詳しく解説します。 Pythonの組み込みデータ型一覧 Pythonでは変数を作成・宣言する際に、さまざまなデータ型を持たせることができます。Pythonには以下のような組み込みデータ型が用意されています。 str(文字列) int、float、complex(数値) list、tuple(シーケンス) dict(辞書) set(集合) bool(ブール値) bytes、bytearray(バイナリ) それでは、各データ型の特徴と作成方法を順番に見ていきましょう。 文字列型: