Address
304 North Cardinal St.
Dorchester Center, MA 02124
Work Hours
Monday to Friday: 7AM - 7PM
Weekend: 10AM - 5PM
Address
304 North Cardinal St.
Dorchester Center, MA 02124
Work Hours
Monday to Friday: 7AM - 7PM
Weekend: 10AM - 5PM
今回のPython初心者・入門講座は、文字列を扱うjoin()メソッドの基本的な使い方を解説します。Pythonでリストを作成し、そのリストの各要素の文字列をつなげて表示してみようという記事です。
Contents
文字列.join(イテラブルなオブジェクト)
joinメソッドは文字列を結合してくれるものですが、実は結合する要素の間に挟む文字列を指定できます。それが、joinメソッドにある文字列です。
すなわち、上の構文を別の書き方にすると、
接着剤.join(結合される部品の集まり)
また、上記「結合される部品の集まり」であるjoinメソッドの引数はイテラブルなオブジェクトです。
イテラブルというのは英語の単語iterableで、日本語では「反復可能な、繰り返しのある」という意味です。
Pythonではイテラブルなオブジェクトの例として代表的なものは
などなどです。他にもいくつかあります。
このイテラブルなオブジェクト(イテレータといいます)についてはまた後日にその基本的な考え方を解説する記事を書いてみたいと思います。今は「イテラブルなオブジェクトとは、リストや辞書など」と覚えておいてください。
では実際にjoinメソッドを使ってみましょう。今回は次のコードを作りました。
アニメリスト=["ライジンオー", "ゴウザウラー", "マイトガイン", "ジェイデッカー"]
print(アニメリスト)
#方法1
for i in range(len(アニメリスト)):
print(アニメリスト[i])
#方法2
print("\n".join(アニメリスト))
まずは新しいリスト「アニメリスト」を作ります。
アニメリスト=["ライジンオー", "ゴウザウラー", "マイトガイン", "ジェイデッカー"]
え?日本語?普通は英語で「new_list」とかにするんじゃないの?と思われるでしょうが、実はPythonは変数の名前や関数の名前に普通に日本語も使えます。よって今回は日本語にしてみました。
このリストの構造はこうなっています。
要素の順番 | 要素の中身 |
---|---|
0 | ライジンオー |
1 | ゴウザウラー |
2 | マイトガイン |
3 | ジェイデッカー |
リストは最初の項目が「ゼロ番」から始まるので、上表ではゼロを最初の要素の順番になっています。
print(アニメリスト)
次にこれで、作ったリスト「アニメリスト」を確認の意味をこめて表示しています。この部分が不要な場合はコメントアウトするか、削除してください。
#方法1
for i in range(len(アニメリスト)):
print(アニメリスト[i])
そしてまずjoinメソッドを使わない方法として、for文を使ったものを作ってみました。
len(アニメリスト))
この部分でアニメリストの要素の個数を取得します。個数は4つなので4という数字を得られます。
そうするとrange関数が、range(4)となります。その結果、「0、1、2、3」という4つの整数を得られます。これら4つの数字が順番に変数iへ代入され、print(アニメリスト[i])が順番に実行されます。
この実行の様子をiの値に応じてまとめると、
iの値 | アニメリスト[i]のデータ |
---|---|
0 | ライジンオー |
1 | ゴウザウラー |
2 | マイトガイン |
3 | ジェイデッカー |
となります。これらの作品名が順番に連続して出力されます。縦に並んで表示されます。それが下の画像です。
さていよいよ今回の目玉、joinメソッドです。
#方法2
print("\n".join(アニメリスト))
joinメソッドの書き方をもう一度確認しますが、
接着剤.join(結合される部品の集まり)
こうでした。今回は、「アニメリスト」というリストが結合される部品(文字列)の集まりです。上述のようにPythonにおけるリストはイテラブルなオブジェクトです。
そして接着剤に、
\n
という改行文字を指定しています。これが挟まれることで改行して表示されることになります。改行文字を指定しなければならないということではなく、当然いろんな文字列を接着剤として設定できます。いろいろ試して見てください。
さてこのようにjoinメソッドを使った結果、
ライジンオー\nゴウザウラー\nマイトガイン\nジェイデッカー
という結果が得られ、それをprint()を使って出力すると、それぞれの文字列が順番に改行されて表示されます。次の画像を見てください。
Windowsのコマンドプロンプト上で上記のコードを実行するとこのように出力されます。方法1でも方法2でも同じ見た目で表示されていますね。
方法1でforを使った場合はprint()が4回実行されることになりますが、方法2では、
というそもそも改行を設定されたデータを1つにまとめて1度に表示しています。つまりprin()が実行されるのは1回だけです。
こういった違いがあります。今回のような簡単すぎて短すぎるプログラムではどちらの方法が、パソコンへの負担が少ない(処理速度が速い)のかわかりませんが、大規模なプログラムになるほどどういった方法を選ぶのかで処理速度に違いが出てくるかもしれません。
以上、文字列を扱うときにちょっと(かなり?)便利なjoin( )メソッドの基本の解説でした。