概要
順次、要素を与えながら処理を繰返す。書き方
for 変数 in イテラブル:
処理文
[else:
処理文]
[else: 処理分]:for文の繰り返しが最後まで完了した時、実行。
イテラブル:文字列・リスト・辞書など
※各行のインデントに注意。
※「for~in」の『in』と『in』『not in』演算子(リスト内の要素の有無検査)とは、動作が違う。
仕組み
- 『イテラブル (iterable)』がイテレータ(iterator)を生成。
- イテレータ(iterator)が順次、1要素を生成。
- 代入文に従い1要素を『変数』へ代入し『処理文』実行。
- 2.3.を要素が生成されなくなるまで繰り返す。
ちょこっとメモ
イテラブル (iterable)
for文によって「繰り返すことができる」オブジェクト。※和訳:繰り返し可能な。「繰り返し、取り出す(生成)」操作を行う。
※和訳:繰り返すもの(反復子)
コード
リスト
通常
numbers = [1,2,3] for number in numbers: print(number) for number in [11,22,33]: print(number)
表示イメージ
1 2 3 11 22 33
リストの要素を追加しながら処理。
Python - シーケンス型.append():最後に要素追加 - まぬねこの足跡。。。
numbers = [1,2,3,4,5] ans = [] for x in numbers: ans.append(x+2) ans
表示イメージ
[3, 4, 5, 6, 7]
タプル
numbers = (1,2,3) for number in numbers: print(number) for number in (11,22,33): print(number)
表示イメージ
1 2 3 11 22 33
文字列
1文字づつ表示fruit = 'apple' for letter in fruit: print(letter)
表示イメージ
a p p l e
辞書
Keyのみ 取出し
fruits = {'apple' : 3, 'banana' : 5, 'peach' : 7}
for key in fruits:
print(key)
表示イメージ
apple banana peach
値のみ 取出し
Python - 辞書型.values():値 一覧 - まぬねこの足跡。。。fruits = {'apple' : 3, 'banana' : 5, 'peach' : 7}
for value in fruits.values():
print(value)
表示イメージ
3 5 7
Keyと値 取出し
fruits = {'apple' : 3, 'banana' : 5, 'peach' : 7}
for key, value in fruits.items():
print(key,value)
表示イメージ
apple 3 banana 5 peach 7
特殊 コード
複数の変数
numbers = [[1, 11], [2, 22], [3, 33]] for i, j in numbers: print(i,j)
表示イメージ
1 11 2 22 3 33
renge()で順次、数を繰返し取得
Python range:順次、数を繰返し取得 ※イミュータブル - まぬねこの足跡。。。「0」以上~stop未満まで繰り返す。
for i in range(5): print(i)
表示イメージ
0 1 2 3 4
start以上~stop未満までstep刻みで繰り返す。※step省略時は1刻み。
for i in range(2, 16, 3): print(i)
表示イメージ
2 5 8 11 14
enumerate()で、イテラブルにインデックスを紐図け(辞書変換)
Python - enumerate():イテラブルにインデックスを紐図け(辞書変換) - まぬねこの足跡。。。fruits = ['apple', 'banana', 'peach'] order = {} for i, w in enumerate(fruits): order[w] = i print(order)
for文の入れ子
for i in range(5): for j in range(5): print(i*j,end=' ') print()
表示イメージ
0 0 0 0 0 0 1 2 3 4 0 2 4 6 8 0 3 6 9 12 0 4 8 12 16