Boost camp 3期Pythonic code(1月17日)


本稿は,NAVER Boost Camp 3期で学習した内容に基づいて作成した.

Pythonic code


list comprehension

  • Pythonでよく使われる技術
  • 速度は通常のfor+appendより
  • 速い
  • リストを使用して新しいリストを作成する簡単な方法
  • リストの理解方法
    # 0부터 9까지 수를 Lst(리스트)에 저장
    Lst=[i for i in range(10)]
    従来の方法
    Lst=[]
    for i in range(10):
        Lst.append(i)

    lambda

  • 匿名関数は、名前を付けずに関数のように使用できます.
  • 数学に由来するランダ代数
  • Python 3から始めることは推奨されませんが、深さ学習コードでは
  • が多く使用されています.

    Lambda問題

  • 文法困難
  • 試験困難
  • ドキュメント化docstringサポート不全
  • コード
  • は説明しにくい

    Lambda方式

    f = lambda x, y: x + y
    print(f(1,2))

    従来の方法

    def f(x, y):
    	return x + y
    print(f(1,2))

    Lambdaによる高速入力

    import sys
    input = lambda:sys.stdin.readline().rstrip()

    map

  • mapは、リスト内の要素を指定関数として扱う関数
  • である.
  • の実行時に値を生成し、メモリ効率は
  • である.
    Lst=[1,2,3,4,5]
    f = lambda x, y: x + y
    print(list(map(f,Lst,Lst)))

    reduce

  • map関数とは異なりlistには
  • 関数が順次適用される.
  • 深さ学習ビッグデータ量を処理するための
  • from functools import reduce
    print(reduce(lambda x, y: x + y, [1,2,3,4,5]))

    generator

  • iterable objectを特殊形状の関数として使用する
  • 要素を使用するときに値をメモリに戻す->メモリアドレスを節約する(生産量を使用して一度に1要素を返す)
  • .
  • を実行するまで、メモリにデータをアップロードせず、アドレス値
  • のみ
  • ビッグデータの処理に適する
  • def general_list(value):
    	result = []
        for i in range(value):
        	yield i
            
    for n in generator_list(50):
    	print(n)