Pythonによるキャストのやり方を詳しく解説します
- 作成日: 2023-07-15
- 更新日: 2023-12-25
- カテゴリ: Python
Pythonによるキャストのやり方
キャストとは、ある型を別の型に変換することを言います。
Pythonにも型は存在しているので当然ながらキャストも行えます。
この記事ではPythonによるキャストのやり方について詳しく解説します。
関連記事
Djangoでオブジェクトを一括作成・更新【bulk_create, bulk_update】
DjangoのModel.objects.filter()の使い方【QuerySet】
Djangoのmodelのcreate()の使い方【Python】
Django入門: ルートの設定 ~ 簡単な一行掲示板アプリを作る その4【Windows10】
NumPyのappend()の使い方: 配列の末尾に要素を追加
Numpyのarangeの使い方: 指定範囲の数列を生成する
Python3でYoutube Data APIを使ってキーワード検索する
PythonからC言語(my.puts)を呼び出して実行する
変換できない場合の例外処理
キャストで変換できない場合は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のキャストについて解説しました。
なにか参考になれば幸いです。
🦝 < 型変換!
🦝 < キャスト!