Python ループ(繰り返し処理

スポンサーリンク
スポンサーリンク

For文

基本

数値で範囲を指定

for i in range(1,5):
    print(i)
# 1
# 2
# 3
# 4

# ステップ
for i in range(1,5,2):
    print(i)
# 1
# 3

# 逆順
for i in range(5,0,-1):
    print(i)
# 5
# 4
# 3
# 2
# 1

# 小数点
for i in range(0,5):
    print(i /10)
# 0.0
# 0.1
# 0.2
# 0.3
# 0.4

1行で処理結果をリストに内包

変数 = [処理 for i in レンジ]

上記のように記載すれば、処理した結果を変数にリスト型で値を代入することができます。
ちなみに、複数行で記載するより高速で処理されます。

n = [i/10 for i in range(0,5)]
    
print(n)
# [0.0, 0.1, 0.2, 0.3, 0.4]

1行で条件付き処理結果をリストに内包

変数 = [処理 for i in レンジ if 条件式]

上記のように記載すれば、条件に満たした場合に、処理した結果を変数にリスト型で値を代入することができます。
ちなみに、複数行で記載するより高速で処理されます。

n = [i/10 for i in range(0,5) if i % 2 == 0]
    
print(n)
# [0.0, 0.2, 0.4]

リスト型

基本

data = [1, 2, 3]

for val in data:
    print(val)
# 1
# 2
# 3

# 二次元リスト型
data = [[1,2,3],[4,5,6]]
for val in data:
    print(val)
    print(val[0], val[1], val[2])
# [1, 2, 3]
# 1 2 3
# [4, 5, 6]
# 4 5 6

data = [[1,2,3],[4,5,6]]
for val0, val1, val2 in data:
    print(val0, val1, val2)
# 1 2 3
# 4 5 6

インデックス(index)も取得

data = [1, 2, 3]

for index, val in enumerate(data):
    print(index, val)
# 0 1
# 1 2
# 2 3

# 二次元リスト型
data = [[1,2,3],[4,5,6]]
for index, val in enumerate(data):
    print(index, val)
# 0 [1, 2, 3]
# 1 [4, 5, 6]

タプル型

リスト型と同じです。

基本

data = (1, 2, 3)
for val in data:
    print(val)
# 1
# 2
# 3

# 二次元配列
data = ((1, 2, 3), (4, 5, 6))
for val in data:
    print(val)
    print(val[0], val[1], val[2])
# [1, 2, 3]
# 1 2 3
# [4, 5, 6]
# 4 5 6

data = ((1, 2, 3), (4, 5, 6))
for val0, val1, val2 in data:
    print(val0, val1, val2)
# 1 2 3
# 4 5 6

インデックス(index)も取得

data = (1, 2, 3)
for index, val in enumerate(data):
    print(index, val)
# 0 1
# 1 2
# 2 3

# 二次元配列
data = ((1, 2, 3), (4, 5, 6))
for index, val in enumerate(data):
    print(index, val)
# 0 [1, 2, 3]
# 1 [4, 5, 6]

辞書型(連想配列、dict

キーより

data = {"Tokyo":1, "Osaka":2, "Kyoto":3}

for key in data.keys():
    print(key)

# Tokyo
# Osaka
# Kyoto
もちろんprintのところでキーを指定して値を取得することもできます。
data[key]

値より

data = {"Tokyo":1, "Osaka":2, "Kyoto":3}

for value in data.values():
    print(value)

# 1
# 2
# 3

キーと値より

data = {"Tokyo":1, "Osaka":2, "Kyoto":3}

for key, value in data.items():
    print(key, value)

# Tokyo 1
# Osaka 2
# Kyoto 3
この使い方を覚えておけばいいと思います。

Numpy配列

for val in data:
    print(val)
# 1
# 2
# 3
# 4
# 5

Pandas

基本(おすすめ

df = pd.DataFrame([[1,2,3],[4,5,6]]) # リスト型のデータで作成

for index, row in df.iterrows():
    print(index)
    print(row)

# 0
# 0    1
# 1    2
# 2    3
# Name: 0, dtype: int64
# 1
# 0    4
# 1    5
# 2    6
# Name: 1, dtype: int64
他にもいろいろな方法はありますが、これ以外は使わなくても大丈夫です。

特定の列のみ

df = pd.DataFrame([[1,2,3],[4,5,6]], columns = ["aaa", "bbb", "ccc"])

for val in df["aaa"]:
    print(val)
# 1
# 4

While文

基本

条件が満たされるまで繰り返します。

num = 0
while num < 2:
    print(num)
    num += 1

# 0
# 1

条件を終えた時の処理(while〜else

num = 0
while num < 2:
    print(num)
    num += 1

else:
    print("END")
    
# 0
# 1
# END

無限ループ

無限ループを作成する場合は、while True:としましょう。whileから抜けるにはbreakとします。

num = 0
while True:
    print(num)
    num += 1
    
    if num >= 2:
        break

# 0
# 1

 

タイトルとURLをコピーしました