pythonのリスト(list)の要素をstr型やint型に変換する方法について、サンプルコードを交えながら紹介します。
泥臭く、forループで変換する方法も紹介しています。
forループの扱いに慣れると応用が利くので、是非参考にしてみてください。
この記事で分かること
- for文で、リスト(list)の要素をstr型やint型に変換する方法
- map関数で、リスト(list)の要素をstr型やint型に変換する方法
- map関数とリスト内包表記で、リスト(list)の要素をstr型やint型に変換する方法
スポンサーリンク
リスト(list)の要素をstr型やint型に変換する【for文】
はじめに、for文を使って、泥臭く変換する方法を紹介します。
for文の使い方に慣れておくと、他の応用も利くので、自在に扱えるようになることをオススメします。
str型、int型への変換は、それぞれ下記のように記述します。
書き方
str型への変換 : str(値)
int型への変換 : int(値)
そのまんまですね。
for文を用いて、リストの要素をstr型(文字列型)に変換するサンプルコードは、以下になります。
### リストの要素をstr型に変換する(for文)
list_1 = [
[11, 12, 13, 14],
[21, 22, 23, 24],
[31, 32, 33, 34]
]
list_1_str = []
for row in list_1:
row_str = []
for data in row:
row_str.append(str(data))
list_1_str.append(row_str)
print(list_1_str)
# [['11', '12', '13', '14'], ['21', '22', '23', '24'], ['31', '32', '33', '34']]
print(type(list_1_str[0][0]))
# <class 'str'>
>for row in list_1:
リストから、行ごとにデータを取り出しています。
>for data in row:
行データから、要素を1つずつ取り出しています。
>row_str.append(str(data))
str型に変換した要素を、リストである「row_str」に追加しています。
>list_1_str.append(row_str)
1行分の、str型への変換後のデータが入っているリスト「row_str」を、
リストである「list_1_str」に追加しています。
これが、行数分ループすることで、リスト全体をstr型に変換しています。
int型に変換する場合は、
str(data)の部分を、int(data)に変更してください。
はじめに、for文で変換するコードを見ておくと、
この後のコードがいかに簡潔に記載されているか実感できると思います。
スポンサーリンク
1次元のリスト(list)の要素をstr型やint型に変換する【map関数】
次に、map関数を用いて、リストの要素をstr型やint型に変換する方法を紹介します。
map関数を使用することで、リストのすべての要素に、特定の関数の処理を適用することができます。
書き方
map(関数, リスト)
以下、サンプルコードです。
### map関数を用いて、1次元のリストの要素をstr型に変換する
list_1 = [11, 12, 13, 14]
list_1_str = map(str, list_1)
print(list_1_str)
# <map object at 0x0000026AB7447C88>
print(list(list_1_str))
# ['11', '12', '13', '14']
map関数は、map型のオブジェクトを返します。
そのため、そのままprint( )で表示しても、変換後のリストの要素は確認できません。
上記のサンプルコードでは、list( )でリストに変換しています。
なお、int型に変換する場合は、
map(str, list_1)の部分を、map(int, list_1)に変更してください。
map関数については、下記の記事で詳しく紹介しているので参考にしてみてください。
スポンサーリンク
2次元のリスト(list)の要素をstr型やint型に変換する【map関数、リスト内包表記】
次に、2次元のリストの要素を
map関数とリスト内包表記を用いて、str型やint型に変換する方法を紹介します。
以下、サンプルコードです。
### map関数とリスト内包表記を用いて、2次元のリストの要素をstr型に変換する
list_2 = [
[11, 12, 13, 14],
[21, 22, 23, 24],
[31, 32, 33, 34]
]
list_2_str = [list(map(str, row)) for row in list_2]
print(list_2_str)
# [['11', '12', '13', '14'], ['21', '22', '23', '24'], ['31', '32', '33', '34']]
for文のサンプルコードと比べて、とても簡潔なコードになっていることが分かるかと思います。
>list_2_str = [list(map(str, row)) for row in list_2]
ここがリスト内包表記とmap関数の組み合わせになっています。
リスト「list_2」から、行ごとにデータ「row」を取り出し、map関数に渡しています。
map関数では、リスト「row」の要素すべてに対して、関数strの処理を行います。
list( )に変換したものをlist_2_strに渡しています。
なお、内包表記については、下記の記事で詳しく紹介しているので参考にしてみてください。
スポンサーリンク
まとめ
pythonのリスト(list)の要素をstr型やint型に変換する方法について紹介しました。
map関数やリスト内包表記を用いると、コードを簡潔に記載することができます。
見やすいコードはバグ防止にもなりますので、map関数やリスト内包表記の基本的な使い方は覚えておくようにしましょう。