Pythonのfor文の書き方【上級者向け】

310, 2020-02-25

目次

Pythonのfor文の書き方

Pythonのfor文の書き方です。

rangeでfor文を回す

range0から3より下まで回す。

for i in range(3):
    print(i)
0
1
2

range3から6より下まで回す。

for i in range(3, 6):
    print(i)
3
4
5

range2つ飛ばしで回す。

for i in range(0, 10, 2):
    print(i)
0
2
4
6
8

rangeで負の方向に回す。

for i in range(3, 0, -1):
    print(i)
3
2
1

リスト(list)をfor文で回す

リストをfor文で回す。

lst = [1, 2, 3]

for el in lst:
    print(el)
1
2
3

for文とrangeを使ってリストを回す。

lst = [1, 2, 3]

for i in range(len(lst)):
    print(lst[i])
1
2
3

for文とenumerateを使ってリストを回す。

lst = [1, 2, 3]

for i, el in enumerate(lst):
    print(i, el)
0 1
1 2
2 3

タプル(tuple)をfor文で回す

タプルをfor文で回す場合。

tpl = (1, 2, 3)

for el in tpl:
    print(el)
1
2
3

for文とrangeを使ってタプルを回す。

tpl = (1, 2, 3)

for i in range(len(tpl)):
    print(tpl[i])
1
2
3

for文とenumerateを使ってタプルを回す。

tpl = (1, 2, 3)

for i, el in enumerate(tpl):
    print(i, el)
0 1
1 2
2 3

辞書(dict)をfor文で回す

辞書をfor文で回す。

d = {'a': 1, 'b': 2}

for key in d:
    print(d[key])
1
2

辞書のキーをfor文で回す。

d = {'a': 1, 'b': 2}

for key in d.keys():
    print(key, d[key])
a 1
b 2

辞書の値をfor文で回す。

d = {'a': 1, 'b': 2}

for val in d.values():
    print(val)
1
2

辞書のキーと値をfor文で回す。

d = {'a': 1, 'b': 2}

for key, val in d.items():
    print(key, val)
a 1
b 2

集合(set)をfor文で回す

集合をfor文で回す場合。

s = {1, 2, 3}

for el in s:
    print(el)
1
2
3

集合をfor文とrangeで回す。
添字を使った値へのアクセスはできない。

s = {1, 2, 3}

for i in range(len(s)):
    print(i)
0
1
2

集合をfor文とenumerateで回す。

s = {1, 2, 3}

for i, el in enumerate(s):
    print(i, el)
0 1
1 2
2 3

自作クラスをfor文で回す

自作クラスをfor文で回したい場合はクラスに__iter__を定義する。

class Array:
    def __init__(self):
        self.array = [1, 2, 3]

    def __iter__(self):
        return iter(self.array)

arr = Array()

for el in arr:
    print(el)
1
2
3

自作クラスをfor文とrangeで回したい場合は__len____getitem__を定義する。

class Array:
    def __init__(self):
        self.array = [1, 2, 3]

    def __len__(self):
        return len(self.array)

    def __getitem__(self, i):
        return self.array[i]

arr = Array()

for i in range(len(arr)):
    print(arr[i])
1
2
3

自作クラスをfor文とenumerateで回したい場合も__iter__を定義する。

class Array:
    def __init__(self):
        self.array = [1, 2, 3]

    def __iter__(self):
        return iter(self.array)

arr = Array()

for i, el in enumerate(arr):
    print(i, el)
0 1
1 2
2 3

おわりに

for文はPythonの基本的な制御文ですが、色々書き方があります。
全部覚えるのは時間がかかるのでこの記事をブックマークしておきましょう。

ループ大好き

おしまい

投稿者名です。64字以内で入力してください。

必要な場合はEメールアドレスを入力してください(全体に公開されます)。

投稿する内容です。

スポンサーリンク

スポンサーリンク

スポンサーリンク

スポンサーリンク