Python: Tips, Tricks and Idioms
μλ¬Έ : Python: Tips, Tricks and Idioms
λ²μ κΉμ§λ μλκ³ (λ²μν λ΄μ©λ λ³λ‘ μκΈ°μ.) λμ λλ λͺκ°μ§λ§ μ£Όκ΄μ μΈ μ견μ λΆμ¬μ μ μ΄λ³Έλ€.
enumerate
β index μ κ°μ΄ μΆλ ₯νκΈ° μν΄μ i λ±μ λ³μλ₯Ό ++ νλ ννλ‘ forλ¬Έμ λ리μ§λ§κ³ enumerate λ₯Ό μ¬μ©νλ©΄ κ°λ¨νκ² ν΄κ²°μ΄ λλ€.
set
β set
μ μ¬μ€ μ μ¬μ©νμ§ μλλ°, ν΄λΉ μμκ° unique ν΄μΌ νλ€λ μ μ½μ΄ μλ€. μλμ μμ€λ₯Ό 보면 λ¨μν list λ΄ μμμμ ν¬ν¨λκ²(κ΅μ§ν©, intersection)κ³Ό ν¬ν¨λμ§ μμκ²(μ°¨μ§ν©, difference) μ set
μ μ΄μ©ν΄μ κ°μ Έμ€λ κ²μ λ³Ό μ μλ€. κΈ°μ‘΄μ list μμ for 루νλ₯Ό ν΅ν΄μ κ±Έλ¬λμλ€λ©΄ set
μ μ¬μ©νλ μ½λλ‘ λ°κΎΈλκ² μ’μκ² κ°λ€.
for β¦ else
β μ κΈ°ν ꡬ문μ΄λ€. if else
κ° μλ for else
λΌλ. λλκ²μ΄ μ κΈ°νλ° μλμ μ½λλ₯Ό 보면μ μ€λͺ
μ νλ©΄, break
λ¬Έμ΄ λλ¬νμ§ μκ³ for 루νλ₯Ό νμΆνκ² λλ©΄ else: νμμ κ΅¬λ¬Έμ΄ μ€νλλ€. κ·Έλ μ§λ§, break
λ¬Έμ λλ¬ν΄μ νμΆνκ² λλ©΄ else: νμμ ꡬ문μ μ€νλμ§ μλλ€.
Generator expressions
β yield
λ₯Ό μ΄μ©ν generator λ₯Ό λ§λλ λ°©λ²μ μλ μ μλ €μ Έ μλλ° μ¬κΈ°μμλ κ΄νΈ() λ₯Ό μ΄μ©ν΄μ generator λ₯Ό λ§λ€κ³ μλ€. λ§μ½ μλμ μ½λμμ κ΄νΈ() λμ μ [] λ₯Ό μ°κ² λλ©΄ generator κ° μλ listλ‘ λ§λ€μ΄μ§λ μ£Όμνμ. generator λ₯Ό μ¬μ©ν΄μΌ νλ μ΄μ μ λν΄μ μ μ μλ List Comprehension μ λ¬Έμ μ μ λ©λͺ¨λ¦¬μ λ°λ‘ μ μ¬λλ€λ μ μ΄κ³ , μ΄ λΆλΆμ λ§€μ° ν° λ°μ΄ν°μ κ²½μ° λ¬Έμ κ° λ μ μλ€κ³ νλ€. generator λ₯Ό μ¬μ©νλ©΄ κ°μ²΄κ° λ¦κ² μμ±λλ€κ³ νκ³ μ€μ κ°μ μμ²νκΈ° μ κΉμ§ μ΄λ€ μ°μ°λ μλ€κ³ μ€λͺ
νκ³ μλ€.(you can use a generator expression, which uses very similar syntax, but creates a lazy object, that computes nothing until you ask for a value.)
Dictionary Comprehension
β List Comprehension μ λ§μ΄ λ΄€μ΄λ Dictionaryμ λνκ²μ μ²μλ΄μ μ μ΄λλ€. μλμ μ½λλ₯Ό 보면 μ μ λ΄€λ generator expression μ dict()
μ ν¨μΌλ‘μ¨ μμ±ν μλ μκ³ [] λμ μ {} λ₯Ό μ¬μ©ν΄μ Dictionaryλ₯Ό λ§λ€μ΄ λ΄κ³ μλ€.
κΈ°ν defaultdict
, Counter
μ λν μκ°λ μλ¬Έλ§ν¬λ₯Ό 보면 λμμλ€. μ΄λ―Έ μκ³ μλλΆλΆμ΄λΌμ μκ°νμ§ μμμ§λ§, νλ² νμ΄λ³΄λκ²λ μ’μκ² κ°λ€.