くり返しとデータの持ち方

INPUT · スライド

分けて、つなぐ

01 / 07

区切りで分けてリストにする

split(スプリット、分割する)は、文字列を区切りで分けてリストにする。

カッコの中に「何で区切るか」を書く。下の例ではカンマで区切っているよ。

print("あか,あお,きいろ".split(","))

実行結果

['あか', 'あお', 'きいろ']

02 / 07

分けたあとはリストの道具が全部使える

返ってくるのがリストだということは、リストで覚えたことがそのまま使えるということ。

番号で取り出す、len で数える、for で回す。文字列のままでは面倒だったことが、リストにした瞬間に簡単になるよ。

iros = "あか,あお,きいろ".split(",")print(iros[0])print(len(iros))

実行結果

あか
3

03 / 07

空白で分ける

区切りはカンマでなくてもいい。空白でも、好きな文字でも指定できる。

人が書いた文は空白で区切られていることが多いので、split(" ") の出番は多いよ。

bun = "やまだ はなこ"print(bun.split(" "))

実行結果

['やまだ', 'はなこ']

04 / 07

リストを1本の文字列に戻す

逆向きが join(ジョイン、つなぐ)。リストの要素を1本の文字列につなげる。

ただし、書き方の形が少し意外だ。

print(",".join(["あか", "あお", "きいろ"]))

実行結果

あか,あお,きいろ

05 / 07

join を呼ぶのは区切り文字のほう

iros.join(",") と書きたくなるけれど、Pythonは逆だ。区切り文字に .join をつけて、リストをカッコに渡す。

なぜこの形かというと、join は「このわたしを、あいだにはさんでつなぐ」という命令だからだよ。主役は区切り文字のほうなんだ。

区切りを変えたければ、前の文字列を変えるだけ。"、".join(...) でも "".join(...) でもいい。

iros = ["あか", "あお"]print("と".join(iros))print("".join(iros))

実行結果

あかとあお
あかあお

06 / 07

分けて、加工して、つなぐ

split と join は往復できる。分けてリストにして、リストの道具で手を加えて、またつなぐ。

これが文字列を加工するときの定番の流れだよ。下の例は、カンマ区切りを「と」区切りに作り変えている。

iros = "あか,あお,きいろ".split(",")print("と".join(iros))

実行結果

あかとあおときいろ

07 / 07

ここまでのまとめ

このグループでやったことを振り返ろう。

  • namae[0] … 番号で1文字。リストと同じ
  • namae[0:3] … スライスで切り出す。リストと同じ
  • in find count … さがす
  • upper strip replace … 加工する。元は変わらない
  • split join … リストと行き来する

番号とスライスは、リストで覚えたものがそのまま効いた。Python は「並んでいるもの」を同じ書き方で扱えるように作られている。1つ覚えれば、次からは覚えることが減るんだ。