リスト内包表記
[]の中にfor文をかいて配列を返すような場合、簡潔に書ける。
t = (1,2,3,4,5) r = [] for i in t: r.append(i) r = [i for i in t]
ディクショナリ内包表記
zipを使う
w = ['mon','tue','wed'] f = ['coffee','milk','water'] d = {} for x, y in zip(w, f): d[x] = y d = {x: y for x, y in zip(w, f)}
集合内包表記
{}に値だけ入れれば集合になる。キーバリューを入れたらディクショナリ。
s = set() for i in range(5): s.add(i) s = {i for i in range(5)}
ジェネレータ内包表記、タプル内包表記
タプルの場合は tupule()
ふつうの()はジェネレータ
g = (i for i in range(5)) t = tuple(i for i in range(5))
スコープ
関数内からグローバル変数を書き換えるにはglobalをつける
locals()でローカル変数を列挙
globals()でグローバル変数を列挙
amount = 8 def foo(): global amount print(amount) amount = 5 print(amount) print(locals()) foo() print(globals())
例外処理
Exceptionで予期しないエラーもキャッチするようなことはしてはだめ
ちゃんと想定するエラーのみをキャッチする
try: liex = [] # liex[3] # lino[4] except IndexError as ex: print(f"err: {ex}") except Exception as ex: print(ex) else: print("処理成功、エラーなし") finally: print("常に実行")
独自エラーの作成、Exceptionを継承する class MyException(Exception): pass エラーを発生させる raise IndexError('test')