Pythonによるキャストのやり方を詳しく解説します
706, 2023-07-15
目次
Pythonによるキャストのやり方
キャストとは、ある型を別の型に変換することを言います。
Pythonにも型は存在しているので当然ながらキャストも行えます。
この記事ではPythonによるキャストのやり方について詳しく解説します。
変換できない場合の例外処理
キャストで変換できない場合はTypeError
例外が飛んできます。
try: int([1, 2, 3]) except TypeError as e: print(e) # int() argument must be a string, a bytes-like object or a real number, not 'list'
キャストする場合はこの例外を補足するようにします。
またint()
やfloat()
に数値じゃない文字列を与えた場合はValueError
例外が飛んできます。
try: int('abc') except ValueError as e: print(e) # invalid literal for int() with base 10: 'abc' try: float('abc') except ValueError as e: print(e) # could not convert string to float: 'abc'
文字列をint
にキャストすることは多いので、このエラーハンドリングをしてエラーに対処しておきましょう。
strへのキャスト
str
は文字列型です。
この型へキャストするにはstr()
に値を渡します。
# int print(str(123)) # 123 # float print(str(3.14)) # 3.14 # complex print(str(3+2j)) # (3+2j) # list print(str([1, 2, 3])) # [1, 2, 3] # tuple print(str((1, 2, 3))) # (1, 2, 3) # dict print(str({'a': 1, 'b': 2})) # {'a': 1, 'b': 2} # bool print(str(True)) # True
int
やfloat
、また複素数(complex
)など。
それからリスト、タプル、辞書、bool
などを文字列に変換可能です。
intへのキャスト
文字列、float
をint
へキャストできます。
# str print(int('123')) # 123 # float print(int(3.14)) # 3
floatへのキャスト
文字列、int
をfloat
へキャストできます。
# str print(float('3.14')) # 3.14 # int print(float(1)) # 1.0
複素数へのキャスト
文字列を複素数へキャストできます。
# complex print(float('3+2j')) # (3+2j)
リストへのキャスト
タプルをリストへキャストするには以下のようにします。
# tuple print(list((1, 2, 3))) # [1, 2, 3]
また辞書のdict_keys
やdict_values
、dict_items
をリストへキャストするには以下のようにします。
d = {'a': 1, 'b': 2} # keys print(d.keys()) # dict_keys(['a', 'b']) print(list(d.keys())) # ['a', 'b'] # values print(d.values()) # dict_values([1, 2]) print(list(d.values())) # [1, 2] # items print(d.items()) # dict_items([('a', 1), ('b', 2)]) print(list(d.items())) # [('a', 1), ('b', 2)]
タプルへのキャスト
リストをタプルへキャストするには以下のようにします。
# list print(tuple([1, 2, 3])) # (1, 2, 3)
また辞書のdict_keys
やdict_values
、dict_items
をタプルへキャストするには以下のようにします。
d = {'a': 1, 'b': 2} # keys print(d.keys()) # dict_keys(['a', 'b']) print(tuple(d.keys())) # ('a', 'b') # values print(d.values()) # dict_values([1, 2]) print(tuple(d.values())) # (1, 2) # items print(d.items()) # dict_items([('a', 1), ('b', 2)]) print(tuple(d.items())) # (('a', 1), ('b', 2))
辞書へのキャスト
例えば以下のようなリストは辞書へキャストできます。
[('a', 1), ('b', 2)]
以下のようにキャストします。
# list print(dict([('a', 1), ('b', 2)])) # {'a': 1, 'b': 2}
boolへのキャスト
int
やfloat
をbool
にキャストできます。
print(bool(1)) # True print(bool(0)) # False print(bool(3.14)) # True print(bool(0.0)) # False
おわりに
今回はPythonのキャストについて解説しました。
なにか参考になれば幸いです。
(^ _ ^) | 型変換! |
(・ v ・) | キャスト! |