Effective Python-1章まとめ



ヘルプ関数の作成

  • 複雑で同じ論理を繰り返し使用する場合にhelper関数を使用します.
  • orまたはand演算子の代わりに
  • if/else式を使用します.
  • # bad
    my_value.get('red') or 0
    
    # good
    red = my_value.get('red')
    red = int(red[0]) if red[0] else 0

    スライド

  • スライス結果は新しいリストです.
  • 枚の割り当ては、新しい入力値に従って増加または減少します.
  • 枚に開始、終了、ステップ長を指定しないでください.
  • a = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
    a[2:4] = ['1']
    
    # ['a', 'b', '1', 'e', 'f', 'g']

    list comprehension

  • リストコンピュータを使用します.mapやfilterの代わりに使用できます.
  • dictおよびsetも
  • をサポートする
  • 式は1つのみ使用されます:
  • a = [1, 2, 3, 4]
    squares = [i**2 for i in a]
    squares_map = map(lambda x: x ** 2, a)
    
    # [1, 4, 9, 16]

    generator

  • メモリに問題がある場合は、グラフィックス:
  • を使用します.
  • 大入力の高速処理に使用できます.
  • it = (len(x) for x in open('/temp/my_file.txt'))
    print(next(it))

    enumerate

  • listのインデックスと値をループできます.
  • for i, value in enumerate(tmp_list):
    	print(i, value)

    zip

  • ペアで使いたい時に使います.
  • names = ["Lisa", "Bang", "James"]
    nums = [1, 2, 3]
    
    for num, name in zip(nums, names):
    	print(num, name)

    for / else


  • 文の間に中断がなく、最後まで実行されるためelse文を実行します.

  • ドアの後ろでelseを使うな
  • try / except / else / finally

  • elseブロックは、tryブロックのコードに異常が発生しない場合に付加的な動作を示す視覚効果を有する.