
photo credit: morten f Ieatheartattacks set list via photopin (license)
みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。
初心者向けにフォルダ操作を題材としてPythonプログラミングの基本中の基本についてお伝えしています。
前回の記事はコチラ。
forループによる繰り返し処理の書き方についてお伝えしました。
さて、たくさんのデータを取り扱いときに、それぞれに変数を用意するのは大変です。
そこで、Pythonではリストというデータ構造が用意されていて、データをまとめて取り扱うプログラムを作るのに役立ちます。
ということで、今回はPythonでデータをまとめて取り扱うリストについてその基本とforループにより繰り返しについてお伝えしていきます。
では、行ってみましょう!
前回のおさらい
では、まずは前回のおさらいから。
作成したコードはこちらです。
import os for i in range(5): os.mkdir(str(i))
forループとrange関数で作業フォルダに5つのフォルダを作成するプログラムです。
ですが、str関数で頑張って変数iを文字列に変換させてはいるものの、このやり方だと単なる数値名がフォルダ名になっちゃいますよね。
とはいえ、前々回作成以下コードのように、何回もmkdir関数を列挙するのもスマートではありません。
import os os.mkdir('10_アフリカ') os.mkdir('20_アメリカ') os.mkdir('30_アジア') os.mkdir('40_ヨーロッパ') os.mkdir('50_オセアニア')
ということで、今回はこの悩みを解決していきます。
リストとは
リストの作り方
リストというのは、データをまとめて取り扱うためのデータ構造で以下のように、角括弧の中に要素をカンマ区切りで記述します。
要素としては数値、文字列はもちろんリスト自体を指定することもできますし、それらを混在させることも可能です。
以下のようにリストを変数に代入することもできますし
以下のようにすれば空のリストを表します。
他のプログラミング言語でいう配列にとっても似ていますね。
例えば、全世界の支店用のフォルダ名をまとめて取り扱うのであれば、以下のようなリストを用意すればよさそうです。
IDLEで以下のようにリストを変数listに代入して、表示してみてください。
>>>areas = ['10_アフリカ', '20_アメリカ', '30_アジア', '40_ヨーロッパ', '50_オセアニア'] >>>areas
変数listにはリストがまるっと格納されていますね。
リストから要素を取り出す
それで、この要素を取り出すには、インデックスを使います。最初に定義した要素はインデックス「0」、次の要素にはインデックス「1」、…というように順番にインデックスが振られています。
このインデックスを使って
とすることで、指定したインデックスに該当する要素を取り出すことができます。
ですから、先ほどのlistで「30_アジア」を取り出したければ、3番目はインデックス「2」ですから、以下のようにすれば良いですね。
>>> areas[2]
ばっちり、リストから目的の要素を取り出せました。
forループでリストから順番に要素を取り出す
これでリストは作れました。
それで、このリストから要素を一つずつ取り出すことができれば、それぞれの要素をフォルダ名としてフォルダを作成することができそうです。
Pythonでは、前回お世話になったforループを使えば、簡単にリストの要素一つずつについて繰り返し処理をすることができます。
このように書きます。
# 処理
おお、簡単そうですね!
例えば、以下のようなコードを実行してみましょうか。
areas = ['10_アフリカ', '20_アメリカ', '30_アジア', '40_ヨーロッパ', '50_オセアニア'] for area in areas: print(area)
実行結果はコチラ。
リストを使ってフォルダをまとめて作成する
ここまでくればもう目標は間近ですね。
フォルダ名をリストにしておいて、それによりまとめてフォルダを作成するプログラムを作ります。
forループ内の処理をprint関数からos.mkdir関数に変更すればよさそうです。
import os areas = ['10_アフリカ', '20_アメリカ', '30_アジア', '40_ヨーロッパ', '50_オセアニア'] for area in areas: os.mkdir(area)
はい、では実行してみましょう。
はい、各エリアのフォルダがバッチリ作成できました!
まとめ
Pythonでデータをまとめて扱うリストの基本の使い方、forループでのリスト要素についての繰り返し処理についてお伝えしました。
Python、ひたすらスマートに書けますね。
これで、リストの内容さえ変えていけば、好みのフォルダをたくさん作ることができますね。
さて、次回ですが、うっかり同名のフォルダが存在しちゃっているかどうかを判定する方法についてお伝えします。
どうぞお楽しみに!