Pythonのリストを文字列に変換する方法(join()の活用)
生徒
「先生、Pythonでリストっていうのを文字に変える方法ってあるんですか?」
先生
「うん、あるよ!Pythonではjoin()というメソッドを使うとリストの中身を文字列に変換できるんだ。」
生徒
「それってどういうときに使うんですか?」
先生
「例えば、リストで単語を分けて持っておいて、それを一つの文にしたいときとかに使えるよ。これから詳しく説明していくね。」
1. Pythonのリストとは?
まずは、リストとは何かを確認しておきましょう。Python(パイソン)における「リスト」とは、複数の値(データ)を一つにまとめて管理できる箱のようなものです。
例えば、「りんご」「バナナ」「みかん」といった果物を一つのリストにまとめることができます。
fruits = ["りんご", "バナナ", "みかん"]
このように[](角カッコ)で囲み、カンマで区切ってデータを並べます。
2. リストをそのままprintするとどうなる?
リストをそのままprint()関数で表示すると、データは「リストの形」で出力されます。
print(fruits)
['りんご', 'バナナ', 'みかん']
ですが、人間が読む文章のように「りんご、バナナ、みかん」という形にはなりません。
3. join()メソッドの役割とは?
join()は、Pythonで文字列をつなげるための「道具」です。
特に、リストの中の文字列を1つの文字列に変換したいときに使います。
書き方は少し独特ですが、以下のように使います。
print("、".join(fruits))
りんご、バナナ、みかん
このように、カンマやスペースなど、自分で指定した文字を「間に入れて」リストの要素を一つの文字列にくっつけてくれます。
4. join()の書き方をていねいに解説
join()は、「何をはさむか?」という文字列の後に.join(リスト)と書きます。
"、":区切り文字(今回は読点)fruits:リスト(中身が文字列であること)
つまり、「読点で区切ってリストの中身をつなげてね」という意味です。
5. 他の区切り文字も使えるの?
もちろん使えます。たとえば、スペース(空白)や改行文字なども使えます。
下の例では、半角スペースで単語をつなげています。
words = ["Python", "で", "プログラミング"]
sentence = " ".join(words)
print(sentence)
Python で プログラミング
6. 数値を含むリストでは注意が必要
注意点として、リストの中にint(整数)などの文字列以外の値があると、join()は使えません。
次のコードはエラーになります。
numbers = [1, 2, 3]
print(",".join(numbers))
TypeError: sequence item 0: expected str instance, int found
このように、リストの中に数字があるとjoin()は動かないんです。
そのため、文字列に変換してからjoin()を使いましょう。
numbers = [1, 2, 3]
str_numbers = [str(n) for n in numbers]
print("-".join(str_numbers))
1-2-3
7. 応用:join()で文章を作ってみよう
最後に、実際にリストを使って文章っぽいものを作ってみましょう。
words = ["今日は", "天気が", "いいですね", "!"]
message = "".join(words)
print(message)
今日は天気がいいですね!
このように、join()を使えば、単語を自由につなげて自動的に文章を作ることもできるんです。
8. join()はPython学習の基本テクニック
join()メソッドは、Pythonの文字列処理でとてもよく使われる基本の機能です。
初心者のうちからしっかり身につけておくと、将来プログラムを書くときに役立ちます。
例えば、ログを出力するときやデータを整形するとき、またCSV(カンマ区切りのファイル)を作るときにも使われます。
Pythonのプログラミングを始めたばかりの人にとって、リストと文字列の変換は必ず通る道なので、ぜひ繰り返し使って慣れていきましょう。