Effective Python その2

その1の続き

  1. 1つのスライスの中でstart, end, strideを使わないこと
    1. 奇数番目だけ表示 list[::2]
    2. 偶数番目だけ表示 list[1::2]
    3. Reversing strings list[::-1]
  2. MapやFilterの代わりにList comprehensionを使うこと
    1. 全ての要素の数を2乗する [ x**2 for x in list]
    2. 2段の配列をflatにする
      list = [[1,2,3],[4,5,6]][ second for first in list for second in first] 
    3. 2の倍数の数だけ2乗して格納する [ x**2 for x in list if x % 2 == 0]
    4. ListだけでなくDictionaryやSet型もcomprehensionをサポートしている
  3. List Comprehensionに2つより多くfor, ifなどを用いないこと
  4. 大量のリストにList Comprehensionは使わず、Generator Expressionを使う
    1. list = [[1,2,3],[4,5,6]]gen = ( second for first in list for second in first)
      for val in gen:
          print(val) 
  5. RangeじゃなくてEnumerateを使う
    1. for index, val in enumerate(list):
          print(index,val) 
  6. 複数のイテレータを同時に処理する場合にはzipを使う
    1. zipを使う場合には同じ長さのものを使う
  7. For/elseを使わないこと。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください