Pythonスキルの習得

【忙しい人のためのPython】for 文の使い方 – 頻繁に使用される操作を厳選 –

【忙しい人のためのPython】for 文の使い方 - 頻繁に使用される操作を厳選 -

Pythonで、頻繁に使われる「for」関係の操作を、ご紹介します。

  • 「ど忘れしたから、さっさと知りたい」

という方を対象にしています。

本記事は、「すぐに知って、すぐ離脱」できるよう、構成しております。

下記もくじより、知りたい操作を、クリック(タップ)して下さい。                                                                                                                                                   

要素を1つずつ取出す

listから、要素を1つずつ取出す

for 変数 in {リスト} 文を使用します。

◆ コード例

# 下記リストは、1例
numbers = [1, 2, 3, 4, 5]

for number in numbers:
    print(number)

# ⬆ 実行例
# 1
# 2
# 3
# 4
# 5

タプルから、要素を1つずつ取出す

for 変数 in {タプル}を使用します。

# 下記は、1例
items = (1, 2, 3)

for item in items:
    print(item)

# ⬆ 実行例
# 1
# 2
# 3

辞書内の要素を、1つずつ取出す

辞書から、「Key」のみを取出す

for 変数 in {辞書}を使用します。(for 〜 in {dict}.keys() でもOK)

◆ コード例

# 下記は、1例
sample_dict = {
    'A': 'sample_A',
    'B': 'sample_B',
    'C': 'sample_C',
    'D': 'sample_D',
}

for sample in sample_dict:
    print(sample)

# 下記でもOK
# for sample in sample_dict.keys():
#    print(sample)

# ⬆ 実行例
# A
# B
# C
# D

辞書から、「Value」のみを取出す

for 変数 in {辞書}.values() を使用します。

# 下記は、1例
sample_dict = {
    'A': 'sample_A',
    'B': 'sample_B',
    'C': 'sample_C',
    'D': 'sample_D',
}

for sample in sample_dict.values():
    print(sample)

# ⬆ 実行例
# sample_A
# sample_B
# sample_C
# sample_D

辞書内から、「Key, Value」をセットで取出す

for 変数1, 変数2 in {dict}.items() を使用します。

変数1に「Key」、変数2に「Value」が代入されます。

◆ コード例

# 下記は、1例
sample_dict = {
    'A': 'sample_A',
    'B': 'sample_B',
    'C': 'sample_C',
    'D': 'sample_D',
}

for k, v in sample_dict.items():
    print(f'{k}: {v}')

# ⬆ 実行例
# A: sample_A
# B: sample_B
# C: sample_C
# D: sample_D

DataFrameを、1行ずつ取出す(iterrows)

for 変数1, 変数2 in df.iterrows()を使用します。

コード例:

# 変数「df」に下記が代入されているとする
#    a   b   c
# 0  1  11  21
# 1  2  12  22
# 2  3  13  23
# 3  4  14  24

for idx, row in df.iterrows():
    print('*' * 10)
    print(f'index: {idx}')
    print(row)

# ⬆ 実行例
# **********
# index: 0
# a     1
# b    11
# c    21
# Name: 0, dtype: int64
# **********
# index: 1
# a     2
# b    12
# c    22
# Name: 1, dtype: int64
# **********
# index: 2
# a     3
# b    13
# c    23
# Name: 2, dtype: int64
# **********
# index: 3
# a     4
# b    14
# c    24
# Name: 3, dtype: int64

インデックス番号も併せて取得する(enumerate)

for 変数1, 変数2 in enumerate({リスト等}) を使用します。

コード例:

# 下記は、1例
numbers = [1, 2, 3, 4, 5]

for i, number in enumerate(numbers):
    print(f'index: {i}  element: {number}')

# ⬆ 実行例
# index: 0  element: 1
# index: 1  element: 2
# index: 2  element: 3
# index: 3  element: 4
# index: 4  element: 5

インデックス番号は、0から始まります。

複数の要素を、まとめて取出す(zip)

for 変数1,変数2,・・・ in zip({リスト1等}, {リスト2等}・・・)

コード例:

# 下記は、1例
numbers1 = [1, 2, 3, 4, 5]
numbers2 = [11, 12, 13, 14, 15]

for number1, number2 in zip(numbers1, numbers2):
    print(f'{number1}, {number2}')

# ⬆ 実行例
# 1, 11
# 2, 12
# 3, 13
# 4, 14
# 5, 15

逆順で、要素を取出す(reversed)

for 変数 in reversed({リスト等}) を使用します。

コード例:

# 下記は、1例
numbers = [1, 2, 3]

for number in reversed(numbers):
    print(number)

# ⬆ 実行例
# 3
# 2
# 1

ループの途中で、for文から抜け出す (break)

for文から抜けたい場所で、break を使用します。

コード例:

# 下記は、1例
numbers = [1, 2, 3, 4, 5]

for number in numbers:
    print(number)
    if number == 3:
        break

# ⬆ 実行例
# 1
# 2
# 3

number = 「3」の時に、breakが実行されています。

結果、numberの「4」と「5」のループが、Skipされています。

現在のループをSkipして、次のループに移る(continue)

次のループにSkipしたい場所で、continue を使用します。

# 下記は、1例
numbers = [1, 2, 3, 4, 5]

for number in numbers:
    if number == 3:
        continue
    print(number)

# ⬆ 実行例
# 1
# 2
# 4
# 5

number = 「3」の時に、continueが実行されています。

結果、print()が実行されず、次のループ(number「4」)まで、Skipされています。

breakを使わず、for文が回りきった時のみ、処理を実行する(for〜else )

for 〜 else 文を使用します。

途中で、breakを使わない場合;

numbers = [1, 2, 3]

for number in numbers:
    print(number)
else:
    print('End')

# ⬆ 実行例
# 1
# 2
# 3
# End

途中で、breakを使った場合:

numbers = [1, 2, 3]

for number in numbers:
    print(number)
    if number == 2:
        break
else:
    print('End')

# ⬆ 実行例
# 1
# 2

for文を、breakを使って抜け出すと、else句が実行されていません。