【プログラミングの考え方】 分割
池袋 練馬 大泉学園 保谷 ひばりヶ丘 東久留米 清瀬 秋津
上記のように、駅名を空白で区切ったものがあるとする。
head と tail
先頭の駅名から1つずつ処理したいときは、最初に欲しい駅名は[池袋]だけなので、
池袋
練馬 大泉学園 保谷 ひばりヶ丘 東久留米 清瀬 秋津
👆 1つ目の空白を取り除き、それより先頭側の要素1つ(head と呼ぶ)と、後ろ側の全部の要素(tail と呼ぶ)の2つに分ける手法がある
次に欲しい駅名の[練馬]を取るときも、 head と tail の考え方をもう1回使う。
練馬
大泉学園 保谷 ひばりヶ丘 東久留米 清瀬 秋津
これを繰り返して、全部の駅名を取っていくことができる
split
他の方法として、空白で全部分ける、という考え方がある。
池袋
練馬
大泉学園
保谷
ひばりヶ丘
東久留米
清瀬
秋津
使い分け
池 袋 練 馬 大泉学園 保 谷 ひばりヶ丘 東久留米 清 瀬 秋 津
👆 データが望んだとおりに綺麗に入っているとは限らない。
ここで、1文字の駅名はなく、2文字の駅名は間に空白が入っていることが分かっているとする。
ここで split という手法を使ってから 先頭の単語が1文字のケース、そうでないケースと1つずつ分けて処理しようとすると
池
袋
練
馬
大泉学園
保
谷
ひばりヶ丘
東久留米
清
瀬
秋
津
👆 このようなバラバラの(= tokenize された)データを作ることになる。
トークナイズされたデータを取り扱うのは 簡単のように思える。
しかし、プログラミングにおいて、
[簡単のように思える]には以下の2つの意味が伴う。
問題の解決が簡単のように思える
ヒューマン・ミスすることが簡単のように思える
プログラミングでは、問題の解決が簡単のように思えることよりも、ヒューマン・ミスすることが[難しいように思える]ことの方が時として重要になる場面もある。
👇 ここで head と tail という手法を使うと、ヒューマン・ミスすることが難しいように思える。
池
袋 練 馬 大泉学園 保 谷 ひばりヶ丘 東久留米 清 瀬 秋 津
👆 head が1文字なら もう一度 head と tail の手法を使えば2文字目が入っているし、
大泉学園
保 谷 ひばりヶ丘 東久留米 清 瀬 秋 津
👆 head が2文字以上なら、そのまま駅名として使える
この記事が気に入ったらサポートをしてみませんか?