文字列 文法・環境

【Python】文字列型を数値型(整数・小数)へ変換する方法【str、int、float】

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関数の基本的な使い方
内包表記の基本的な使い方

リストの要素を文字列型や数値型へ変換する方法については、下記の記事で様々なサンプルコードを紹介しています。

併せて参考にしてみてください。

リストの要素を文字列型や数値型へ変換する方法【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進数の変換方法の詳細は、下記の記事で紹介しています。

2進数・16進数と10進数を変換する方法

スポンサーリンク

-文字列, 文法・環境
-,