まぬねこの足跡。。。

備忘録+たのしさ+ひっそりと

Python 「for文」・・・繰り返し

概要

順次、要素を与えながら処理を繰返す。

書き方

for 変数 in イテラブル:
  処理文
[else:
  処理文] 

  [else: 処理分]:for文の繰り返しが最後まで完了した時、実行。
  イテラブル:文字列・リスト・辞書など
  ※各行のインデントに注意。
  ※「for~in」の『in』と『in』『not in』演算子(リスト内の要素の有無検査)とは、動作が違う。

仕組み

  1. 『イテラブル (iterable)』がイテレータ(iterator)を生成。
  2. イテレータ(iterator)が順次、1要素を生成。
  3. 代入文に従い1要素を『変数』へ代入し『処理文』実行。
  4. 2.3.を要素が生成されなくなるまで繰り返す。

ちょこっとメモ

イテラブル (iterable)

for文によって「繰り返すことができる」オブジェクト。
※和訳:繰り返し可能な。

イテレータ(iterator)

「繰り返し、取り出す(生成)」操作を行う。
※和訳:繰り返すもの(反復子)

コード

リスト

通常

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)  

表示イメージ

{'apple': 0, 'banana': 1, 'peach': 2}

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