Python のお勉強2 ( while 文、内包表記)

Python のお勉強シリーズ」第2回目です。今回は while 文内包表記についてサンプルコード書いてみました。

■ while.py

#coding: cp932

i = 0
print("start1")
while i < 5:
    print(i)
    i += 1
else:
    print("end1")

j = 0
print("start2")
while j < 5:
    print(j)
    j += 1
    if j == 2:
        break
else:
    print("end2") #break すると else は実行されない

■ 実行結果

start1
0
1
2
3
4
end1
start2
0
1

while は評価式部分が true である限りループし続けます。for 文と同様に else に書いた処理はループ完了後に実行されます。ただし、break で抜けた場合は実行されません。


■ naihou.py

#coding: cp932

#リスト
list = [i * 2 for i in range(1, 6)]
print(list)

#タプル
tuple = tuple(i * 2 for i in range(1, 6) if i %2 != 0)
print(tuple)

#セット
set = {i * 2 for i in range(1, 6)}
print(set) #セットは順序は保証 ( 記録 ) されない。{8, 2, 10, 4, 6} みたいになる。

#辞書
map = {i:i * 2 for i in range(1, 6)}
print(map)

■ 実行結果

[2, 4, 6, 8, 10]
(2, 6, 10)
{8, 2, 10, 4, 6}
{1: 2, 2: 4, 3: 6, 4: 8, 5: 10}

リスト、タプル、セット、辞書の作成を簡素に書く方法として内包表記というものがあるみたいです ( パーフェクト Python によるとコストも削減できるみたいです )。上記だとタプル作成のパターンでやってますが、if 文で条件にマッチする要素のみ追加するということもできるみたいです。


以上になります。

[ 環境情報 ]
Windows 7 SP1
Python 3.4.3