見出し画像

ループと内包表記【Python入門⑤】

for文とwhile文、そしてリスト内包表記についてまとめます。

ループ文とは

コードを繰り返し実行するための方法です。以下の構文で、ループごとに'iterable'から順番に取り出した要素が'variable'に格納されます。

# 構文
for variable in iterable:

# 例
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
    print(fruit)

# 出力
apple
banana
cherry

inの右側には、リストやタプルなど、グループとして考えられるオブジェクトを置きます。
文字列内の「文字」をループすることもできます。

# 文字列が入った変数を作る
s = 'steganograpHy is the practicE of conceaLing a file, message, image, or video within another fiLe, message, image, Or video.'

# 文字列内に文字が大文字があれば、表示する(改行・空白なしで)
for char in s:
    if char.isupper():
        print(char, end='')   

range()関数 - 繰り返す回数を指定

# カッコの中に繰り返す回数を指定
for i in range(3):
    print("くりかえし =", i)
# 出力
くりかえし0
くりかえし1
くりかえし2

while文

for文以外に、while文というループ文もあります。定義された条件がFalseになるまで繰り返します。

# while文の例
i = 0
while i < 10:
    print(i, end=' ')
    i += 1 # iを1ずつ増やす。+=は短縮代入演算子

 リスト内包表記

リスト内包表記を使うと、if文やwhile文よりさらに少ないコードで問題を解決できることがあります。

# nの2乗(n=10個まで)のリストを作る
squares = [n**2 for n in range(10)]
squares

# 出力
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

ifを使用するリスト内包表記

# 構文
new_list = [expression for member in iterable if condition]

'iterable' はリストやタプルなどです。条件が True を返す各 'member'('iterable' の各要素)に対して、'expression' が評価され、その結果が新しいリストに追加されます。
SQLのwhere句に近いイメージでとらえることもできます。
expression = SELECT
for memver in iterable = FROM
if condition = WHERE

# (例)文字列のリストからappleだけ取り出す
my_list = ["apple", "banana", "cherry", "apple", "date"]
apple_list = [i for i in my_list if i == "apple"]
print(apple_list)  # リスト: ['apple', 'apple']


この記事が気に入ったらサポートをしてみませんか?