Pythonにおいて、文字列型を数値型に変換する方法について紹介します。
本記事では、下記の内容を紹介しています。
この記事で分かること
- 文字列型と整数型を相互変換する方法
- 文字列型と浮動小数点型を相互変換する方法
- リストの要素を文字列型や数値型へ変換する方法
- 数値を0埋めして文字列型へ変換する方法
- カンマ付き数値を、文字列型から数値型へ変換する方法
- 2進数・16進数の文字列を数値型へ変換する方法
Pythonの主なデータ型は以下のとおりです。
本記事では、文字列型と整数型・浮動小数点型の変換方法について紹介しています。
種類 | データ型 | 説明 | 例 | |
---|---|---|---|---|
数値型 | 整数 | int | 小数点なしの数値型 | num = 100 |
浮動小数点 | float | 小数点ありの数値型 | num = 1.14 | |
複素数 | complex | 虚数単位を j を用いて表す | a = 1 + 2j | |
シーケンス型 | 文字列 | str | シングルクォート「'」もしくは、 ダブルクォート「”」で囲う | fruit = 'Apple' |
タプル | tuple | ・( )で定義。 ・各要素をカンマ「 , 」で区切る ・要素は変更できない | (1, 2, 3) | |
リスト | list | ・[ ]で定義。 ・各要素をカンマ「 , 」で区切る ・要素は変更可能 | [1, 2, 3] | |
集合型 | 集合 | set | ・{ }で定義 ・重複する要素は無視される ・要素に順番がない | set1 = {1, 2, 3, 3, 1, 2} print(set1) # {1, 2, 3} |
マッピング型 | 辞書 | dict | ・{ }で定義 ・keyとvalueの組み合わせ | price = {"apple":100, "banana":200, "orange" : 100} |
その他 | 真偽 | bool | ・True、False ・1, 0と等価 | is_ok = True |
Pythonの変数・データ型の基本については、下記の記事で紹介しています。
変数・データ型の基本まとめ。命名規則、変数宣言、変数型の確認方法など。
スポンサーリンク
文字列型と整数型を変換する方法
文字列型と数値の整数型を変換する方法を紹介します。
組み込み関数のint( )を用いることで、文字列型を整数型に変換することができます。
num_str = '123'
print(type(num_str))
# <class 'str'>
num_int = int(num_str)
print(type(num_int))
# <class 'int'>
print(num_int)
# 123
組み込み関数のstr( )を用いることで、整数型を文字列型に変換することができます。
num_int = 123
print(type(num_int))
# <class 'int'>
num_str = str(num_int)
print(type(num_str))
# <class 'str'>
print(num_str)
# 123
スポンサーリンク
文字列型と浮動小数点型を相互変換する方法
文字列型と数値の浮動小数点型を変換する方法を紹介します。
組み込み関数のfloat( )を用いることで、文字列型を浮動小数点型に変換することができます。
num_str = '1.23'
print(type(num_str))
# <class 'str'>
num_flo = float(num_str)
print(type(num_flo))
# <class 'float'>
print(num_flo)
# 1.23
組み込み関数のstr( )を用いることで、浮動小数点型を文字列型に変換することができます。
num_flo = 1.23
print(type(num_flo))
# <class 'float'>
num_str = str(num_flo)
print(type(num_str))
# <class 'str'>
print(num_str)
# 1.23
スポンサーリンク
リスト(2次元配列)の要素を文字列型や数値型へ変換する方法
リストの要素を文字列型や数値型へ変換する方法について紹介します。
リストの要素のデータ型を変換する方法にはいくつか方法がありますが、本記事ではmap関数と内包表記を使用する方法を紹介します。
以下、2次元のリストの要素を文字列型から整数型へ変換するサンプルコードです。
list_str = [
['11', '12', '13', '14'],
['21', '22', '23', '24'],
['31', '32', '33', '34']
]
list_int = [list(map(int, row)) for row in list_str]
print(list_int)
# [[11, 12, 13, 14], [21, 22, 23, 24], [31, 32, 33, 34]]
map関数を用いることで、リストの全要素に対して関数を適応することができます。
また、内包表記を用いることで、もとのリストから新しいリストを作成することができます。
サンプルコードを簡単に説明すると、
もとのリストである " list_str " から、1行ごと取り出しrowに渡し、map関数を用いてrowの各要素にint関数を適用し、
mapオブジェクトからlist関数を用いてリストに変換し、内包表記で2次元リストに戻す、という処理を行っています。
map関数、内包表記の使い方については、以下の記事で紹介しています。
リストの要素を文字列型や数値型へ変換する方法については、下記の記事で様々なサンプルコードを紹介しています。
併せて参考にしてみてください。
リストの要素を文字列型や数値型へ変換する方法【map関数、内包表記、for文】
数値を0埋めして文字列型へ変換する方法
数値を0埋めして文字列型へ変換する方法について紹介します。
文字列のメソッドであるzfill( )を用いることで、文字列を0埋めできます。
以下、数値を文字列に変換し0埋めするサンプルコードです。
num_int = 123
print(type(num_int))
# <class 'int'>
num_str = str(num_int).zfill(4)
print(type(num_str))
# <class 'str'>
print(num_str)
# 0123
> num_str = str(num_int).zfill(4)
str( )関数を用いたことで文字列型に変換されているため、文字列メソッド.zfill( )が使用できるようになっています。
zfill(4)としているので、0埋めされ4桁の文字列となっています。
文字列メソッドのrjust( )を用いても、文字列の0埋めを行うことができます。
rjust( )は、文字列を右寄せする際に使用するメソッドで、第一引数に"全体の文字数"、第二引数に"埋める文字"を指定します。
num_int = 123
print(type(num_int))
# <class 'int'>
num_str = str(num_int).rjust(4, '0')
print(type(num_str))
# <class 'str'>
print(num_str)
# 0123
スポンサーリンク
カンマ付き数値を、文字列型から数値型へ変換する方法
カンマ付きの数値を、文字列型から数値型へ変換する方法について紹介します。
カンマ "," 付きの文字列を、int( )関数で変換しようとすると、ValueErrorとなります。
num_str = '1,230'
num_int = int(num_str)
# ValueError: invalid literal for int() with base 10: '1,230'
文字列のreplaceメソッドを用いて、カンマを削除することで、数値型に変更できるようになります。
num_str = '1,230'
num_int = int(num_str.replace(',',''))
print(num_int)
# 1230
2進数・16進数の文字列を数値型へ変換する方法
2進数・16進数の文字列型を数値型へ変換する方法について紹介します。
組み込み関数 int( )の第二引数に基数を指定することで、2進数や16進数の文字列を10進数の数値に変換できます。
以下、サンプルコードです。
num_bin ='1011'
num_hex ='000b'
print(type(int(num_bin, 2)))
# <class 'int'>
print(type(int(num_hex, 16)))
# <class 'int'>
print(int(num_bin, 2))
# 11
print(int(num_hex, 16))
# 11
10進数の数値から、2進数・16進数の文字列型に変換するには、組み込み関数のbin( )関数、hex( )関数を使用します。
num_dec = 11
num_bin = bin(num_dec)
num_hex = hex(num_dec)
print(type(num_bin))
# <class 'str'>
print(type(num_hex))
# <class 'str'>
print(num_bin)
# 0b1011
print(num_hex)
# 0xb
2進数・16進数の変換方法の詳細は、下記の記事で紹介しています。
スポンサーリンク