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句が実行されていません。