Pythonでデータをまとめて取り扱う基本中の基本!リストの使い方とforループ


list

photo credit: morten f Ieatheartattacks set list via photopin (license)

みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。

初心者向けにフォルダ操作を題材としてPythonプログラミングの基本中の基本についてお伝えしています。

前回の記事はコチラ。

Pythonプログラミングの基本中の基本!forループによる繰り返しの作り方
一般ビジネスマンの初心者向けフォルダを操作するツールを作りながらPythonの基本を学ぶシリーズ。今回は、Pythonプログラミングの基本、forループとrange関数による繰り返し処理の作り方です。

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_オセアニア')

ということで、今回はこの悩みを解決していきます。

リストとは

リストの作り方

リストというのは、データをまとめて取り扱うためのデータ構造で以下のように、角括弧の中に要素をカンマ区切りで記述します。

[要素1, 要素2,…]

要素としては数値、文字列はもちろんリスト自体を指定することもできますし、それらを混在させることも可能です。

以下のようにリストを変数に代入することもできますし

変数 = [要素1, 要素2,…]

以下のようにすれば空のリストを表します。

[]

他のプログラミング言語でいう配列にとっても似ていますね。

例えば、全世界の支店用のフォルダ名をまとめて取り扱うのであれば、以下のようなリストを用意すればよさそうです。

IDLEで以下のようにリストを変数listに代入して、表示してみてください。

>>>areas = ['10_アフリカ', '20_アメリカ', '30_アジア', '40_ヨーロッパ', '50_オセアニア']
>>>areas

Pythonでリストを出力

変数listにはリストがまるっと格納されていますね。

リストから要素を取り出す

それで、この要素を取り出すには、インデックスを使います。最初に定義した要素はインデックス「0」、次の要素にはインデックス「1」、…というように順番にインデックスが振られています。

このインデックスを使って

リスト[インデックス]

とすることで、指定したインデックスに該当する要素を取り出すことができます。

ですから、先ほどのlistで「30_アジア」を取り出したければ、3番目はインデックス「2」ですから、以下のようにすれば良いですね。

>>> areas[2]

Pythonでリストの要素をインデックスで取り出す

ばっちり、リストから目的の要素を取り出せました。

forループでリストから順番に要素を取り出す

これでリストは作れました。

それで、このリストから要素を一つずつ取り出すことができれば、それぞれの要素をフォルダ名としてフォルダを作成することができそうです。

Pythonでは、前回お世話になったforループを使えば、簡単にリストの要素一つずつについて繰り返し処理をすることができます。

このように書きます。

for 変数 in リスト:
  # 処理

おお、簡単そうですね!

例えば、以下のようなコードを実行してみましょうか。

areas = ['10_アフリカ', '20_アメリカ', '30_アジア', '40_ヨーロッパ', '50_オセアニア']
for area in areas:
    print(area)

実行結果はコチラ。

Pythonでリストの要素をforループで一つずつ出力

リストを使ってフォルダをまとめて作成する

ここまでくればもう目標は間近ですね。

フォルダ名をリストにしておいて、それによりまとめてフォルダを作成するプログラムを作ります。

forループ内の処理をprint関数からos.mkdir関数に変更すればよさそうです。

import os
areas = ['10_アフリカ', '20_アメリカ', '30_アジア', '40_ヨーロッパ', '50_オセアニア']
for area in areas:
    os.mkdir(area)

はい、では実行してみましょう。

Pythonでリストを使って複数のフォルダを作成

はい、各エリアのフォルダがバッチリ作成できました!

まとめ

Pythonでデータをまとめて扱うリストの基本の使い方、forループでのリスト要素についての繰り返し処理についてお伝えしました。

Python、ひたすらスマートに書けますね。

これで、リストの内容さえ変えていけば、好みのフォルダをたくさん作ることができますね。

さて、次回ですが、うっかり同名のフォルダが存在しちゃっているかどうかを判定する方法についてお伝えします。

Pythonで指定したフォルダが存在しているかどうかを調べるos.path.existsの使い方
初心者向けにフォルダ操作をする便利ツールを作りながらPythonプログラミングを学んでおります。今回はPythonで指定したフォルダが存在しているかどうかをos.path.exists関数で調べる方法です。

どうぞお楽しみに!

連載目次:【初心者向けPython】基本の基本を学びながらフォルダ操作

非エンジニアの一般ビジネスマンの初心者向けにPythonでWindowsのファイルやフォルダを操作する簡単便利ツールの作り方を解説しながら、Pythonプログラミングの基本中の基本を学んでいくシリーズです。
  1. Pythonで標準ライブラリのモジュールをインポートして使ってみよう
  2. Pythonでosモジュールのmkdir関数を使ってフォルダを作成する超簡単なプログラム
  3. Pythonプログラミングの基本中の基本!forループによる繰り返しの作り方
  4. Pythonでデータをまとめて取り扱う基本中の基本!リストの使い方とforループ
  5. Pythonで指定したフォルダが存在しているかどうかを調べるos.path.existsの使い方
  6. Pythonで条件分岐をする基本中の基本!if~else文の作り方
  7. Pythonでテキストファイルを開いてデータを読み込む基本中の基本
  8. Pythonで文字列を区切り文字や改行で分割してリスト化するsplitメソッドの使い方
  9. Pythonで文字列のスペース・タブ・改行を取り除くstripメソッドの使い方
  10. Pythonで開いたファイルのクローズを忘れやすい人のためのwith文の使い方
  11. Pythonでcsvファイルからデータを読み込む最初の一歩

タイトルとURLをコピーしました