【Python】For文、リスト、辞書型大全
for文の書き方(繰り返し処理)
for文は基本的に、繰り返し処理を行う時に使用されます。
主に、数字のループと関数、リスト、辞書型同士のループがあります。
数字の繰り返し処理Ⅰ(最後の数字のみ指定する)
数字を繰り返しループさせるためには、range関数を用いて以下のように記述します。
#0から10までの繰り返し処理
for a in range(11):
ここで注意しないといけないのは、range関数の後ろの括弧の数字です。
基本的には、「ループの最後の値(終了値)に1をたした数値を渡す」のが決まりです。
今回は、0から10までのループ処理で、実行結果としては0から10までの数値が順番に表示されればOKです。そのため、終了値(ループの最後の値)は10であり、それに1足した11を引数として渡すことで、0から10までの数値が順番に表示されるようになります。
数字の繰り返し処理Ⅱ(最初と最後の数値を指定する)
数値を両方指定して、その範囲でfor文を回すことも出来ます。
#1から10まで繰り返す
for a in range(1,11)
上のコードのように、range関数の後ろに開始値と、終了値に1を足した値を指定することで、その範囲での繰り返し処理が実行されます。開始値と終了値の間にはカンマ(,)を入れることを忘れないでください。
リストの基礎
リストの定義方法
ここからは、複数の要素を格納する時に便利な「リスト型」と「辞書型」について見ていきましょう!
まずはリストから、定義は以下のように記述します。
#リスト定義(文字のみ)
shopping_list = ["apple","banana","orange"]
基本的に、リストを定義するときには、
と記述します。文字をリスト内の要素として記述する場合は、前後をダブルクォーテーション(")でくくります。
リスト内の要素の追加・削除・変更方法
リスト内の要素を追加、削除、変更するときは、以下のコードを記述します。
#リスト定義
fruits = ['apple', 'banana', 'orange', 'grape']
#リストの要素を変更する
fruits[0] = 'pear'
print(fruits)
#リストの要素を追加する
fruits.append('kiwi')
print(fruits)
#リストの要素を削除する
del fruits[1]
print(fruits)
上のプログラムの出力結果
まず抑えてほしいのは‥
これを抑えましょう!
そして、要素の変更や削除をするには、
del リスト名[番号]
リスト名 [番号] = "変更後の要素名"
のように、大カッコの中にリストの何番目の要素を削除したいのか、変更したいのかを記載する必要があります。ここで、リスト内の要素数は1番目から数えるのではなく、0番目から数えることにも気をつけてください。
辞書型の基礎
次に辞書(Dictionary)型です。
辞書型は以下のように定義します。
リストとの違いは後述します。
#辞書型の定義
tel1 = {81:"日本",1:"アメリカ",66:"タイ",850:"韓国"}
tel2 = {86:"中国",886:"台湾",81:"日本",1:"アメリカ"}
辞書型の定義は上の図のように行います。
基本的には
と記述します。
よく、「キーに文字を入れて、値(Value)には数字しか入らないだろう!」と勘違いされやすいのですが、そんな決まりはありません!!キーに数字を入れて、値(Value)に文字をいれることも出来ます!
ご注意を‥
リストと辞書型の違い
ここまで、リストと辞書型について触れてきましたが、ここからは、リストと辞書型、それぞれの違いについて説明します。
リストと辞書型の違いは以下のとおりです。
リスト
角括弧で定義される。
順序付けられた要素のコレクションで、要素が挿入された順番を保持する。
要素はインデックスを使ってアクセスされる。インデックスは0から始まる。
異なる型の要素を混在させることができる。整数、文字列、他のリストなどを含めることができる。
辞書型
辞書型は、キーと値のペアのコレクション。キーと値は連想されており、キーを使って値にアクセスする。
辞書型は順序を保持しない。
キーは一意でなければいけないが、値は重複しても構わない。
主にこのような違いがあることを抑えましょう!
ちなみに、「キーは一意でなければいけないが、値は重複しても構わない」というのは、以下の例がわかりやすいです。
my_dict = {'apple': 1, 'banana': 2, 'orange': 1}
上のコードでは、"apple"と"orange"はそれぞれValueとして"1"が紐づけられていますが、Valueが"1"であるキーは、"apple"と"orenge"2つです。
このように、値(Value)は重複しても構いませんが、同じ辞書内で異なるキーに対しては異なる値が関連付けられなければなりません。
リスト・辞書型の応用
リスト、辞書型とfor文は相性が良い!
Pythonでは、リストとfor文、辞書型とfor文はとても相性が良いことで有名です。以下に詳しい説明を載せます。
for文を使ってリスト内の要素を書き出す。
リスト内に格納された要素を書き出すとき、for文が役立ちます!
station_list = ["東京","名古屋","京都","大阪","姫路","岡山"]
for a in station_list:
print(a)
print("*********")
for a in station_list[1:3]:
print(a)
print("*********")
for a in station_list[:5]:
print(a)
上のような命令をPython上で組むことで、リスト内の要素を抽出することが出来ます。すべての要素は勿論、リスト内の一部分の要素を抽出することもできることも、合わせて覚えておきましょう!
辞書型をfor文で操作する
辞書型をfor文を用いていろいろな操作をすることが出来ます。
# 空の辞書を作成
my_dict = {}
# keyとvalueを追加
my_dict['apple'] = 10
my_dict['banana'] = 20
my_dict['orange'] = 15
# keyを使ってvalueにアクセス
print("appleの値:", my_dict['apple'])
# keyが辞書に存在するか確認
if 'banana' in my_dict:
print("bananaは辞書に存在します")
# すべてのkeyを取得
keys = my_dict.keys()
print("すべてのkey:", keys)
# すべてのvalueを取得
values = my_dict.values()
print("すべてのvalue:", values)
# keyとvalueのペアを取得
items = my_dict.items()
print("すべてのkeyとvalueのペア:", items)
# 辞書の要素をループで処理
for key, value in my_dict.items():
print(key, ":", value)
# keyを指定して要素を削除
del my_dict['orange']
print("orangeを削除後の辞書:", my_dict)
# 辞書をクリア(全ての要素を削除)
my_dict.clear()
print("辞書をクリア後:", my_dict)
ここで重要ポイント!
これらを使いこなせるようになると、リストと辞書型は完璧に使いこなせるようになります!あとは練習あるのみです!ネットに転がっているPythonの基礎的なプログラミング問題を解き、沢山練習して、使いこなせるようになりましょう!