7μ°¨μ_μλ£κ΅¬μ‘°_κ°μμλ£.pdf
1.23MB
7μ°¨μ_μλ£κ΅¬μ‘°_κ³Όμ .pdf
0.43MB
μλ£κ΅¬μ‘°
μ°Έκ³ λμ : λ°μ΄ν° κ³Όνμ μν νμ΄μ¬ νλ‘κ·Έλλ°, μ΅μμ²
μλ£κ΅¬μ‘°μ μ΄ν΄
- μλ£κ΅¬μ‘°(data structure)μ κ°λ μ€μνμμ μ°Ύμλ³Ό μ μλ λνμ μΈ λ°μ΄ν° μ μ₯ μ¬λ‘ : μ νλ²νΈμ΄λ¦μ κ°λλ€ μμλλ‘ μ μ₯, μμ¦ λ§μ΄ μ¬μ©νλ ν΄λμ νμ μ°λ½μ²μ μ νλ²νΈλ₯Ό μ μ₯νκ³ λ³΄μ¬μ£Όλ λ°©μμ νλ²νΈλΆ μ΄μΈμλ μ€μνμμ λ°μ΄ν°μ νΉμ§μ λ°μνμ¬ μ μ₯ν΄μΌ ν μ 보μ μ ex. μνμ λ²νΈν μ²λ¦¬λ°©μλκΈ° μΈμμ΄ 1μ© μ¦κ°. ν΄λΉ μ¬μ©μκ° μν μλΉμ€ μ΄μ©μ μ’ λ£νλ©΄ 1μ© κ°μ λ²νΈνμ λ²νΈ μ 보μ νμ¬ λκΈ° μΈμμ λͺ¨λ κ΄λ¦¬ν΄μΌ ν¨μ¨μ μΌλ‘ λ°μ΄ν° κ΄λ¦¬ κ°λ₯λμ€μ λ°°λ¬νλ μνλ¬ΌμΌμλ‘ νΈλ μμͺ½μ μκ³ , λ¨Όμ λ°°λ¬νλ μνλ¬ΌμΌμλ‘ νΈλ μ ꡬμͺ½μ μ΄λ κ² λ°μ΄ν°μ νΉμ§μ κ³ λ €ν μ μ₯ λ°©μμ λ§€μ° μ μ©νκ² μ¬μ©λμ΄ μ§λ€.
- μλ£κ΅¬μ‘° : νΉμ§μ΄ μλ μ 보λ₯Ό λ©λͺ¨λ¦¬μ ν¨μ¨μ μΌλ‘ μ μ₯ λ° λ°ννλ λ°©λ²μΌλ‘ λ°μ΄ν°λ₯Ό κ΄λ¦¬νλ λ°©μ νΉν λμ©λμΌμλ‘ λ©λͺ¨λ¦¬μ 빨리 μ μ₯νκ³ κ²μν΄ λ©λͺ¨λ¦¬λ₯Ό ν¨μ¨μ μΌλ‘ μ¬μ©ν΄μΌ μ€ν μκ°μ μ€μΌ μ μμ
- ex. νλ°° μνλ¬Όμ νΈλμ μμ λ μμΉ μ 보 μ μ₯
- μνμ λ²νΈνλ λ²νΈν λ¨λ§κΈ°μμ μ¬μ©μκ° λ²νΈνλ₯Ό νλμ© λ½μΌλ©΄
- μλ£κ΅¬μ‘°(data structure) : λ°μ΄ν°μ νΉμ§μ κ³ λ €νμ¬ μ μ₯νλ λ°©λ²
- κ³Όκ±° μ νλ²νΈλΆμλ μ νλ²νΈλ₯Ό ν¨μ¨μ μΌλ‘ μ°ΎκΈ° μν΄
- νλ‘κ·Έλλ°μ νλ€λ³΄λ©΄ λ€μν ννμ λ°μ΄ν°λ₯Ό μ μ₯νμ¬ μ²λ¦¬ν λκ° μμ
- νμ΄μ¬μμμ μλ£κ΅¬μ‘°μλ£κ΅¬μ‘°λͺ
νΉμ§
μ€ν (stack) λμ€μ λ€μ΄μ¨ κ°μ λ¨Όμ λκ° μ μλλ‘ ν΄μ£Όλ μλ£κ΅¬μ‘° (last in first out) ν (queue) λ¨Όμ λ€μ΄μ¨ κ°μ΄ λ¨Όμ λκ° μ μλλ‘ ν΄μ£Όλ μλ£κ΅¬μ‘° (first in first out) νν (tuple) 리μ€νΈμ κ°μ§λ§ λ°μ΄ν°μ λ³κ²½μ νμ©νμ§ μλ μλ£κ΅¬μ‘° μΈνΈ ( set) λ°μ΄ν°μ μ€λ³΅μ νμ©νμ§ μκ³ , μνμ μ§ν© μ°μ°μ μ§μνλ μλ£κ΅¬μ‘° λμ λ리 (dictionary) μ νλ²νΈλΆμ κ°μ΄ ν€(key)μ κ°(value)μ ννλ‘ λ°μ΄ν°λ₯Ό μ μ₯νλ μλ£κ΅¬μ‘°μ΄λ©° μ¬κΈ°μ ν€κ°μ λ€λ₯Έ λ°μ΄ν°μ μ€λ³΅μ νμ©νμ§ μμ collection λͺ¨λ μμ μ΄κ±°λ μ¬λ¬ μλ£κ΅¬μ‘°λ₯Ό ν¨μ¨μ μΌλ‘ μ¬μ©ν μ μλλ‘ μ§μνλ νμ΄μ¬ λ΄μ₯(built-in) λͺ¨λ - μλ£κ΅¬μ‘°μ κΈ°λ³Έ μ μ₯ λ°©μ > list
μ€νκ³Ό ν
- μ€ν(stack)μ€νμ κ°λ¨ν νννλ©΄ ‘Last In First Out’μΌλ‘ μ μ
- μ€νμ νμ© μ¬λ‘λ¨Όμ λ°°λ¬ν΄μΌ νλ μνλ¬Όμ νΈλμ μ ꡬμͺ½μ, λμ€μ λ°°λ¬ν΄μΌ νλ μνλ¬Όμ νΈλμ μμͺ½μ λ£μ΄μΌ νλ€. μνλ¬Όμ νλμ λ°μ΄ν°λ‘ λ³Έλ€λ©΄ λ¨Όμ λ€μ΄κ° μνλ¬Όλ³΄λ€ λμ€μ λ€μ΄κ° μνλ¬Όμ΄ λ¨Όμ λμμΌ νλ κ²½μ°νμ΄μ¬μμλ 리μ€νΈλ₯Ό μ¬μ©νμ¬ μ€νμ ꡬνν μ μλ€. 리μ€νΈλΌλ μ μ₯ 곡κ°μ λ§λ ν append() ν¨μλ‘ λ°μ΄ν°λ₯Ό μ μ₯(push)νκ³ pop() ν¨μλ‘ λ°μ΄ν°λ₯Ό μΆμΆ(pop)νλ€.λ¨Όμ λ³μ aμ [1, 2, 3, 4, 5]κ° ν λΉ κ·Έ ν λ³μ aμ 10κ³Ό 20μ μΆκ°νλ©΄ λ³μ aμ [1, 2, 3, 4, 5, 10, 20]μ΄ ν λΉ λ€μμΌλ‘ pop() ν¨μλ₯Ό μ¬μ©νλ©΄ κ°μ₯ λ§μ§λ§μ μ μ₯λ κ°μ μΆμΆνκ³ λ¦¬μ€νΈμμ μμ
- pop() ν¨μλ₯Ό μ²μ μ€ννλ©΄ κ°μ₯ λ§μ§λ§μ μ μ₯λ 20μ΄ μΆμΆλλ©΄μ νλ©΄μ μΆλ ₯λκ³ , λμμ λ³μ aμ κ°μ [1, 2. 3. 4, 5, 10]μΌλ‘ λ°λλ€. λ€μ pop() ν¨μλ₯Ό μ€ννλ©΄ λ§μ§λ§μ μ μ₯λ 10μ΄ μΆμΆλλ©΄μ νλ©΄μ μΆλ ₯λκ³ , λμμ λ³μ aμ κ°μ [1, 2, 3, 4, 5]λ‘ λ°λλ€.
- μνλ¬Όκ³Ό λΉμ·ν κ°λ μ λ°μ΄ν°κ° μλ€λ©΄ μ€νμΌλ‘ μ μ₯νμ λ μ’ λ μ½κ² λ°μ΄ν°λ₯Ό μΆμΆ
- νλ°° μνλ¬Όμ μ μ₯νλ λ°©μ
- μ€νμΌλ‘ λ§λ€ μ μλ νλ‘κ·Έλ¨: 2λ‘ λλ λλ¨Έμ§ κ°μ μ€νμ νΈμν ν λ§μ§λ§μΌλ‘ λ€μ΄μ¨ κ°λΆν° νμΌλ‘ μΆμΆνκ³ μΆλ ₯
word = input("Input a word: ") word_list = list(word) print(word_list) result = [] for _ in range(len(word_list)): result.append(word_list.pop()) print(result) print(word[::-1])
μΌλ°μ μΌλ‘ forλ¬Έμμ λ§μ΄ μ°μ΄λ©° forλ¬Έμ _ κΈ°νΈκ° μμΌλ©΄ ν΄λΉ λ°λ³΅λ¬Έμμ μμ±λλ κ°μ μ½λμμ μ¬μ©νμ§ μλλ€λ λ»μ΄λ€range(len(world_list))μμ μμ±λλ κ°μ λ°λ³΅λ¬Έ λ΄μμ μ¬μ©νμ§ μμΌλ―λ‘ _λ‘ ν λΉ
- </aside>
- <aside> π _ κΈ°νΈ : νμ΄μ¬μμ κ΅μ₯ν λ§μ΄ μ°μ΄λ μ½λ μ€ νλ
- λ¨Όμ μ λ ₯ν ν μ€νΈλ λ³μ wordμ μ μ₯λκ³ κ·Έ κ°μ 리μ€νΈνμΌλ‘ λ³ννλ€. κ·Έ ν κ°μ μ°¨λλ‘ μΆμΆνλ©΄ μ λ ₯ν ν μ€νΈμ μμκ°μ΄ μΆλ ₯λλ€
- (2) μ λ ₯ν ν μ€νΈλ₯Ό μμμΌλ‘ μΆλ ₯νλ νλ‘κ·Έλ¨
- (1) ‘μ΄μ§μ λ³νκΈ°’ νλ‘κ·Έλ¨
- 4,10κ³Ό κ°μ λ°μ΄ν°λ₯Ό μ μ₯νλ 곡κ°μΌλ‘ 리μ€νΈμ λΉμ·νμ§λ§ μ μ₯ μμκ° λ°λλ ννλ₯Ό μ€ν μλ£κ΅¬μ‘°(stack data structure) λΌκ³ νλ€. μ€νμ λ°μ΄ν°λ₯Ό μ μ₯νλ κ²μ νΈμ , λ°μ΄ν°λ₯Ό μΆμΆνλ κ²μ ν(pop)μ΄λΌκ³ νλ€.
- μΌλ°μ μΌλ‘ μ€νμ΄λΌκ³ νλ©΄ μ κ·Έλ¦Όμμ λ³Ό μ μλ μ¬κ°νμ μ μ₯ 곡κ°μ λ»νλ€
- μ¦, λ§μ§λ§μ λ€μ΄κ° λ°μ΄ν°κ° κ°μ₯ λ¨Όμ λμ€λ ννλ‘ λ°μ΄ν°μ μ μ₯ κ³΅κ° κ΅¬ν
- μ€νμ μλ£κ΅¬μ‘°μ ν΅μ¬ κ°λ μ€ νλ
- ν(queue)νλ λ¨Όμ λ€μ΄κ° λ°μ΄ν°κ° λ¨Όμ λμ€λ ‘Fist in First Oiitmo’μ λ©λͺ¨λ¦¬ ꡬ쑰λ₯Ό κ°μ§λ μλ£κ΅¬μ‘°μ΄λ€.
- νμ νμ© μ¬λ‘λ¨Όμ μ¨ μ¬λμ΄ μμ λ²νΈνλ₯Ό λ½κ³ , λ²νΈκ° λΉ λ₯Έ μ¬λμ΄ λ¨Όμ μλΉμ€λ₯Ό λ°λ ꡬ쑰μ€νμ λ©λͺ¨λ¦¬κ° μμνλ μ§μ μ΄ κ³ μ λμ΄ μμ§λ§, νλ μ²μμ κ°μ΄ μ μ₯λλ λ©λͺ¨λ¦¬ μ£Όμκ° κ°μ΄ μ¬μ©λ¨μ λ°λΌ κ³μ λ°λ But νμ΄μ¬μμλ μ΄λ¬ν λΆλΆμ΄ μλμΌλ‘ ꡬνλλ―λ‘ μ΄λ ΅μ§ μκ² μ¬μ©ν μ μλ€.κΈ°λ³Έμ μΌλ‘ μ€νμ ꡬνκ³Ό κ°μμ¦, pop() ν¨μκ° λ¦¬μ€νΈμ λ§μ§λ§ κ°μ κ°μ Έμ¨λ€κ³ νλ©΄ pop(0)μ 맨 μ²μ κ°μ κ°μ Έμ¨λ€λ λ»
- a = [1, 2, 3, 4, 5] a.append(10) # a = [1, 2, 3, 4, 5, 10] a.append(20) # a = [1, 2, 3, 4, 5, 10, 20] a.pop(0) # 1 a.pop(0) # 2
- pop() ν¨μλ₯Ό μ¬μ©ν λ μΈλ±μ€κ° 0λ²μ§ΈμΈ κ°μ μ΄λ€λ μλ―Έλ‘ pop(0)μ μ¬μ©νλ©΄ λλ€.
- νμ΄μ¬μμ νλ₯Ό ꡬννλ κ²μ λ§€μ° κ°λ¨νλ€.
- λ©λͺ¨λ¦¬ κ°λ μΌλ‘ λ³Ό λ νλ μ€νλ³΄λ€ κ΅¬νμ΄ μ‘°κΈ λ 볡μ‘
- μνμμ λκΈ° λ²νΈνλ₯Ό λ½μ λ λ²νΈλ₯Ό μ μ₯νλ λ°©μ
- μ€νμ λ°λ κ°λ
ννκ³Ό μΈνΈ
- νν (tuple)
첫 λ²μ§Έ μ€ : νν μ μΈ λͺ λ Ήλ¦¬μ€νΈλ λκ΄νΈ μ¬μ© but μ μΈ μΈμ μ¬λ¬ κ°μ§ μ°μ°μ 리μ€νΈμ κ°μ λ°©μμ΄λ€.νν κ°μ λ§μ , κ³±μ κ·Έλ¦¬κ³ len() ν¨μμ κ°μ΄ 리μ€νΈν λ°μ΄ν°μ μ¬μ©νλ λͺ¨λ ν¨μ μ¬μ©ννμ κ°μ λ§μλλ‘ λ³κ²½ν μ μλ€<aside> β λ§μ½ κ°μ΄ νλλ°μ μλ€λ©΄?t = (1)κ³Ό κ°μ μ½λκ° μκ°λ μλ μλ€.λ°λΌμ κ°μ΄ νλμΌ λλ t = (1, )μ κ°μ΄ λ°λμ μ½€λ§(,)λ₯Ό λΆμ¬ tκ° ννμμ μ μΈν΄μΌ νλ€.t = (1, 2, 3) print(t +1 , t * 2) # (1, 2, 3, 1, 2, 3) (1, 2, 3, 1, 2, 3) len(t) # 3
- ννμ νμ© μ¬λ‘μ΄λ λ°νν΄μ£Όλ νμ μ ννλ‘ μ μΈνλ©΄ λ°μμ μ¬μ©νλ μ¬λμ΄ λ§μλλ‘ λ°μ΄ν°λ₯Ό λͺ»λ°κΏνλ‘κ·Έλλ¨Έκ° μ΄λ¬ν μ΄ν΄ μμ΄ λ§μλλ‘ κ°μ λ³κ²½νλ κ²μ λ°©μ§
- κ·Έλ λ€λ©΄ λ°λλ©΄ μ λλ λ°μ΄ν°μλ μ΄λ€ κ²μ΄ μμκΉ? : νλ²μ΄λ μ΄λ¦, μ£Όλ―Όλ±λ‘λ²νΈμ κ°μ΄ λ³κ²½λλ©΄ μ λλ μ 보
- νλ‘κ·Έλλ°μ νλ€ λ³΄λ©΄ μ¬λ¬ μ¬λκ³Ό ν¨κ» μμ ν΄μΌ νλ κ²½μ°κ° λ§λ€. μμ μ΄ νλμ ν¨μλ§ λ§λ€κ³ , λ€λ₯Έ μ¬λμ΄ κ·Έ ν¨μμ κ²°κ³Όκ°μ μ¬μ©ν΄μΌ νλ κ²½μ°λ λ°μ
- but νμ΄μ¬μ μ΄λ κ² μ μΈν κ²½μ° t = 1λ‘ μ΄ν΄νλ€. t = (5 + 2)* 2μ κ°μ΄ μ°μ°μμ μ¬μ©νλ κ΄νΈλ‘ μ΄ν΄νλ κ²μ΄λ€.
- </aside>
- λ§μ½ ννμ κ°μ λ³κ²½νλ €κ³ νλ©΄ μ€λ₯ λ°μ
- ννκ³Ό 리μ€νΈμ μ μΌν ν° μ°¨μ΄:
- 리μ€νΈμμ μ¬μ©νλ μ°μ°, μΈλ±μ±, μ¬λΌμ΄μ±μ΄ λͺ¨λ λμΌνκ² μ μ© :
- ννμ κ΄νΈλ₯Ό μ΄μ©νμ¬ t = (1, 2, 3)κ³Ό κ°μ ννλ‘ μ μΈ
- 리μ€νΈμ κ°μ κ°λ μ΄μ§λ§ κ°μ λ³κ²½νλ κ²μ΄ λΆκ°λ₯ν 리μ€νΈλ‘ μ΄ν΄νλ©΄ λλ€. ννμ μ μΈκ³Ό μ¬μ©μ΄ 리μ€νΈμ μ½κ° λ€λ₯΄λ€.
- μΈνΈ (set)μνμ μ§ν©κ³Ό κ°λ
μ μΌλ‘ μμ£Ό λΉμ·νμ΄μ¬μμλ μΈνΈ μ μΈμ νλ κ²μΌλ‘ μ¬μ© ν μ μλ€.set() ν¨μλ₯Ό μ¬μ©νμ¬ λ¦¬μ€νΈλ ννμ λ°μ΄ν°λ₯Ό λ£μΌλ©΄ ν΄λΉ κ°μ΄ μΈνΈ ννλ‘ λ³νλλ€.μΈνΈλ ννκ³Ό λ€λ₯΄κ² μμ λ λ³κ²½μ΄ κ°λ₯νλ€.μΈνΈλ₯Ό μ§μνλ ν¨μμλ μμ νλλ₯Ό μΆκ°νλ add(),μλ‘μ΄ λ¦¬μ€νΈλ₯Ό κ·Έλλ‘ μΆκ°νλ update(), λͺ¨λ λ³μλ₯Ό μ§μ°λ clear() λ±μ΄ μλ€. κ°μ λͺ¨λ μμ μμ΄ μ μ₯λλ λμμ μ€λ³΅μ μ κ±°νκ³ μ μ₯λλ€.
- ν©μ§ν©μ λ μ§ν©μ μ€λ³΅κ°μ μ κ±°νκ³ ν©μΉλ μ°μ°
- κ΅μ§ν©μ λ μ§ν© μμͺ½μ λͺ¨λ ν¬ν¨λ κ°λ§ μΆμΆνλ μ°μ°
- μ°¨μ§ν©μ μμ μλ μ§ν© s1μ μμ μ€ s2μ ν¬ν¨λ μμλ₯Ό μ κ±°νλ μ°μ°μ΄λ€.
- s1μ [1, 2, 3, 4, 5]λ₯Ό κ°μ§κ³ μμΌλ―λ‘ [3, 4, 5]λ₯Ό μ κ±°νλ©΄ [1, 2]λ§ λ¨λλ€. s1.difference(s2) λλ s1 - s2λ‘ μ°¨μ§ν©μ μΆμΆν μ μλ€.
- s1 =set([1, 2, 3, 4, 5]) s2 =set([3, 4, 5, 6 ,7]) s1.union(s2) # s1κ³Ό s2μ ν©μ§ν© # {1, 2, 3, 4, 5, 6, 7} s1| s2 #set([1,2,3,4,5,6,7]) # {1, 2, 3, 4, 5, 6, 7} s1.intersection(s2) # s1κ³Ό s2μ κ΅μ§ν© # {3, 4, 5} si & s2 # set([3, 4, 5]) # {3, 4, 5} s1.difference(s2) #s1κ³Ό s2μ μ°¨μ§ν© # {1, 2} s1 - s2 # set([1, 2]) # {1, 2}
- νμ΄μ¬μ μΈνΈλ μνμ μ§ν©κ³Ό λ§μ°¬κ°μ§λ‘ λ€μν μ§ν© μ°μ°μ μ 곡νλ€. μ§ν© μ°μ°μλ κ΅μ§ν©, ν©μ§ν©, μ°¨μ§ν©μ΄ μλ€.
- μμ νλλ₯Ό μ κ±°νλ remove() λλ discard(),
- s # {1, 2, 3} s.add(1) # 1μ μΆκ°νλ λͺ λ Ήμ΄μ§λ§ μ€λ³΅ λΆνλ‘ μΆκ°λμ§ μμ s # {1, 2, 3} s.remove(1) # 1 μμ s # {2, 3} s.update([1, 4, 5, 6, 7]) # [1, 4, 5, 6, 7] μΆκ° s # {1, 2, 3, 4, 5, 6, 7} s.discard(3) #3 μμ s # {1, 2, 4, 5, 6, 7} s.clear() # λͺ¨λ μμ μμ s # set()
- [1, 2, 3, 1, 2, 3] (리μ€νΈν)μ μΈνΈλ‘ λ³ννλ©΄, μ€λ³΅μ μ κ±°ν ν {1, 2, 3}μΌλ‘ λ³νλμ΄ μΆλ ₯
- s=set([1,2,3,1,2,3]) # set()ν¨μλ₯Ό μ¬μ©νμ¬ 1,2,3μ μΈνΈ κ°μ²΄λ‘ μμ± s # {1, 2, 3}
- μ€λ³΅μ λΆννλ νΉμ§ λλ¬Έμ νλ‘κ·Έλλ°μμ λ§€μ° μ μ©νλ€. λνμ μΌλ‘ λ¬Έμ νλμ λ€μ΄κ° μλ λ¨μ΄ μ’ λ₯μ κ°μλ₯Ό μ λ λͺ¨λ λ¨μ΄λ₯Ό μΆμΆν ν μΈνΈλ‘ λ³ννλ©΄ λ¨μ΄ μ’ λ₯μ κ°μλ₯Ό μ½κ² νμ ν μ μλ€.
- κ°μ μμ μμ΄ μ μ₯νλ μ€λ³΅μ λΆννλ μλ£ν
λμ λ리
- λμ λ리(Dictionary)μ κ°λ λ°μ΄ν°μ μ μΌν ꡬλΆμμΈ ν€ (key)λΌλ μ΄λ¦μΌλ‘ κ²μν μ μκ² νκ³ ,
- μ€μ λ°μ΄ν°λ₯Ό κ°(value)μ΄λΌλ μ΄λ¦κ³Ό μμΌλ‘ μ μ₯νμ¬ νλ‘κ·Έλλ¨Έκ° λ°μ΄ν°λ₯Ό μ½κ² μ°Ύμ μ μλλ‘ νλ€
- νμ΄μ¬μ λμ λ리 ꡬ쑰λ
- νμ΄μ¬μμμ λμ
λ리
- λμ λ리 μ μΈ
- μ¬μ© μ
2020111753 Jiyoung 202111175 Jaeyeon 202211175 Jihyeon 202311175 Jeongyeon
student_infoλΌλ λ³μλ₯Ό λ¨Όμ μ μΈν ν, ν΄λΉ λ³μμ (ν€:κ°) ννλ‘ κ°μ μ λ ₯student_info = (2020111753:'Jiyoung', 2021111753:'Jaeyeon', 2022111753:'Jihyeon', 2023111753:'Jeongyeon'}
- κ° νΈμΆνκΈ°
- μ¬ν λΉκ³Ό λ°μ΄ν° μΆκ°νκΈ°
λμ λ리μμμ μ¬ν λΉλ 리μ€νΈμμ μ¬μ©νλ λ°©μκ³Ό λ€λ₯΄μ§ μλ€. ν€λ₯Ό μ΄μ©νμ¬ ν΄λΉ λ³μλ₯Ό νΈμΆν ν μλ‘μ΄ κ°μ ν λΉνλ©΄ λλ€. λ°μ΄ν° μΆκ°λ μλ‘μ΄ ν€λ₯Ό μ¬μ©νμ¬ κ°μ ν λΉνλ©΄ λ¨student_info[2023111753] = 'Jiwon' student_info[2023111753] #'Jiwon' student_info[2019111753] = 'Jaehyeon' student_info # {2020111753:'Jiyoung', 2021111753:'Jaeyeon', 2022111753:'Jihyeon', 2023111753:'Jiwon', 2019111753:'Jaehyeon'}
- ν λΉ μ κΈ°μ‘΄μ μλ ν€λΌλ©΄ ν΄λΉ κ°μ΄ λ³κ²½λκ³ , κΈ°μ‘΄μ μλ ν€λΌλ©΄ μλ‘μ΄ κ°μΌλ‘ μΆκ°λλ€.
- μ¬κΈ°μλ μ μνμΌλ‘ μ μΈνμΌλ―λ‘ μ μνμΌλ‘ νΈμΆ β οΈ λ³μμ μλ£νμ μ νν λͺ¨λ₯΄κ³ νΈμΆνλ€λ©΄ 리μ€νΈλ‘ μ€ν΄ν μλ μμ
- student_info[2022111753] # 'Jihyeon'
- μ¬μ§μ΄ λμ λ리 λν μ¬μ©ν μ μλ€.
- λμ λ리 λ³μ = {ν€ 1:κ° 1, ν€ 2:κ° 2, ν€ 3:κ° 3, …}
- λμ
λ리 ν¨μ
country_code = {} # λμ λ리 μμ± country_code = {"America":1, "Korea":82, "China":86, "Japan":81} country_code # {'America':1, 'Korea':82, 'China':86, 'Japan':81}
- keys() ν¨μ λμ λ리μ ν€λ§ μΆλ ₯ν λλ keys() ν¨μ μ¬μ© μ΄ ν¨μλ₯Ό μ¬μ©νλ©΄ ν€κ° 리μ€νΈ ννλ‘ μΆλ ₯λλ€.
country_code.keys() # λμ λ리μ ν€λ§ μΆλ ₯ # dict_keys(['America', 'Korea', 'China', 'Japan'])
- values() ν¨μ λ°λλ‘ λμ λ리μ κ°λ§ μΆλ ₯ν λλ values() ν¨μλ₯Ό μ¬μ©ν©λλ€
country_code["German"] = 49 # λμ λ리 μΆκ° country code # {'America': 1, 'Korea': 82, 'China': 86, 'Japan': 81, 'German': 49} country_code.values() # λμ λ리μ κ°λ§ μΆλ ₯ # dict_values([1, 82, 86, 81, 49])
- items() ν¨μ ν€-κ° μμ λͺ¨λ 보μ¬μ€ λλ items() ν¨μλ₯Ό μ¬μ©ν©λλ€
country_code.items() # λμ λ리 λ°μ΄ν° μΆλ ₯ # dict_items([('America', 1), ('Korea', 82), ('China', 86), ('Japan', 81), ('German', 49)])
- κ΅κ°λͺ κ³Ό κ΅κ° μ νλ²νΈλ₯Ό λ¬Άμ΄ λ³΄μ¬μ£Όλ μ½λ μμ±
collection λͺ¨λ
from collections import deque
from collections import OrderedDict
from collections import defaultdict
from collections import Counter
from collections import namedtuple
- deque λͺ¨λλ¨Όμ , append() ν¨μλ₯Ό μ¬μ©νλ©΄ κΈ°μ‘΄ 리μ€νΈμ²λΌ λ°μ΄ν°κ° μΈλ±μ€ λ²νΈλ₯Ό λ리면μ μμ΄κΈ° μμdeque_list.pop()μ μνμν€λ©΄ μ€λ₯Έμͺ½ μμλΆν° νλμ© μΆμΆλλ€. μ€νμ²λΌ λμ€μ λ£μ κ°λΆν° νλμ© μΆμΆdequeμμ ν μ¬μ© pop(0)μ μ
λ ₯νλ©΄ μ€νλ κ² κ°μ§λ§, dequeμμλ μλ x
from collections import deque deque_list = deque() for i in range(5): ... deque_list.appendleft(i) ... print(deque_list) # deque([4, 3, 2, 1, 0])
- deque λͺ¨λμ μ₯μ
- μ°κ²° 리μ€νΈμ νΉμ±μ μ§μ μ°κ²° 리μ€νΈλ λ°μ΄ν°λ₯Ό μ μ₯ν λ μμμ κ°μ ν μͺ½μΌλ‘ μ°κ²°ν ν, μμμ λ€μ κ°μ μ£Όμκ°μ μ μ₯νμ¬ λ°μ΄ν°λ₯Ό μ°κ²°νλ κΈ°λ²μ΄λ€.
- κΈ°μ‘΄μ 리μ€νΈμμ μ§μνλ ν¨μ μ¬μ© κ°λ₯
- λ©λͺ¨λ¦¬μ ν¨μ¨μ μ¬μ©κ³Ό λΉ λ₯Έ μλλΌλ μΈ‘λ©΄μμ μ μ©
- deque λͺ¨λμ μ₯μ
- appendleft() ν¨μλ‘ μλ‘μ΄ κ°μ μΌμͺ½λΆν° μ λ ₯νλλ‘ νμ¬ λ¨Όμ λ€μ΄κ° κ°λΆν° μΆλ ₯λ μ μλλ‘ νλ€.
- deque_list.pop() # 4 deque_list.pop() # 3 deque_list.pop() # 2 deque_list # deque([0, 1])
- from collections import deque deque_list = deque() for i in range(5): ... deque_list.append(i) ... print(deque_list) # deque([0, 1, 2, 3, 4])
- deque λͺ¨λμ μ€νκ³Ό νλ₯Ό λͺ¨λ μ§μνλ λͺ¨λ dequeλ₯Ό μ¬μ©νκΈ° μν΄μλ 리μ€νΈμ λΉμ·ν νμμΌλ‘ λ°μ΄ν°λ₯Ό μ μ₯ν΄μΌ νλ€.
- OrderedDict λͺ¨λ
κ²°κ³Όλ μ»΄ν¨ν°λ§λ€ λ€λ₯Ό μ μμd = {} d['x'] = 100 d['l'] = 500 d['y'] = 200 d['z'] = 300 for k, v in d.items(): print(k, v) # x 100 # l 500 # y 200 # z 300
ν€λ₯Ό μ΄μ©νμ¬ μ£Όλ―Όλ±λ‘λ²νΈλ₯Ό λ²νΈ μμλλ‘ μ λ ¬ν ν λ°μ΄ν°λ₯Ό μΆλ ₯νλ κ²½μ°μ κ°μ΄ λμ λλ¦¬λ‘ λ°μ΄ν° μ²λ¦¬ μ ν€λ κ°μΌλ‘ λ°μ΄ν°λ₯Ό μ λ ¬ν λ κ°μ₯ λ§μ΄ μ¬μ©from collections import OrderedDict d = OrderedDict() d['x'] = 100 d['y'] = 200 d['z'] = 300 d['l'] = 500 for k, v in d.items(): print(k, v) # x 100 # y 200 # z 300 # l 500
- x, l, y, zμ μμλλ‘ ν€λ₯Ό μ μ₯νμ§λ§, κ²°κ³Όλ μ μ₯ν μμμ μκ΄μμ΄ λ€μν ννλ‘ μΆλ ₯ νμ§λ§ OrderedDict λͺ¨λμ ν€μ μμλ₯Ό 보μ₯νλ€.
- μ΄λ¦ κ·Έλλ‘ μμλ₯Ό κ°μ§ λμ λ리 κ°μ²΄
- defaultdict λͺ¨λ
μ€μ λμ λ리μμλ ν€λ₯Ό μμ±νμ§ μκ³ ν΄λΉ ν€μ κ°μ νΈμΆνλ €κ³ ν λ, μ€λ₯κ° λ°μνλ€.d = dict() print(d["first"])
d = defaultdict(lambda: 0) : defaultdict λͺ¨λμ μ μΈνλ©΄μ λμμ μ΄κΉκ°μ 0μΌλ‘ μ€μ ν κ²μ΄λ μ΄λ€ ν€κ° λ€μ΄μ€λλΌλ μ²μ κ°μ μ λΆ 0μΌλ‘ μ€μ νλ€λ λ». μ΄μΈμλ defaultdictμ μ΄κΉκ°μ 리μ€νΈ ννλ‘λ μ€μ ν μ μλ€.s λ³μμ νν λ°μ΄ν°λ€μ μ΄μ°¨μ 리μ€νΈ ννλ‘ μ μ₯νλ€.μ΄λ μΌλ°μ μΈ ‘dict’μ λΉν΄ μ½λ μλ₯Ό μ€μΌ μ μμ΄ defaultdict νμ μ κ°μ₯ ν° μ₯μ from collections import defaultdict d = defaultdict(lambda: 0) print(d["first"]) # 0
- λν d =defaultdict(list) μ½λλ dλ₯Ό defaultdict νμ μΌλ‘ μ μΈνλ©΄μ μ΄κΉκ°μ 리μ€νΈλ‘ μ μΈ 5νλΆν° forλ¬Έμ΄ μλνμ¬, λ³μ sμ κ° μμμμ ν€ κ°κ³Ό μ€μ κ°μ μΆμΆνμ¬ λ³μ μμ μΆκ° μ€μν κ²μ λ³μ dλ deafultdict νμ μ΄λ©΄μ listκ° μ΄κΉκ°μΌλ‘ μ μΈλμκΈ° λλ¬Έμ μλ‘μ΄ ν€ κ°μ΄ μλλΌλ λ³λλ‘ μ€λ₯κ° λ°μνμ§ μλλ€.
- from collections import defaultdict s = [('yellow', 1), ('blue', 2), ('yellow', 3), ('blue', 4), ('red', 1)] d = defaultdict(list) for k, v in s: d[k].append(v) print(d.items()) [('blue', [2, 4]), ('red', [1]), ('yellow', [1, 3])] # dict_items([('yellow', [1, 3]), ('blue', [2, 4]), ('red', [1])])
- lambda() ν¨μλ₯Ό λ°°μ°μ§ μμ μ½λλ₯Ό μ νν μ΄ν΄νκΈ° μ΄λ ΅κ² μ§λ§ ‘return 0’μ΄λΌκ³ μ΄ν΄νλ©΄ λ¨
- μ¦, firstμ ν€κ°μ λ³λλ‘ μμ±νμ§ μμ μ± λ°λ‘ νΈμΆνμ¬ μ€λ₯κ° λ°μνλ κ²
- λμ λ리μ λ³μλ₯Ό μμ±ν λ ν€μ κΈ°λ³Έκ°μ μ§μ νλ λ°©λ² μλ‘μ΄ ν€λ₯Ό μμ±ν λ λ³λ€λ₯Έ μ‘°μΉ μμ΄ μλ‘μ΄ κ°μ μμ±ν μ μλ€.
- Counter λͺ¨λμ¦, 리μ€νΈλ λ¬Έμμ΄κ³Ό κ°μ μνμ€ μλ£νμ μ μ₯λ μμ μ€ κ°μ κ°μ΄ λͺ κ° μλμ§ κ·Έ κ°μλ₯Ό λ°νκΈ°μ‘΄ λ¬Έμμ΄κ°μΈ ‘gallahad’λ₯Ό 리μ€νΈνμΌλ‘ λ³νν ν, text λ³μμ μ μ₯ μ¬μ€ ‘gallahad’ μ체λ μνμ€ μλ£νμΈ λ¬Έμμ΄μ΄λ―λ‘ κ΅³μ΄ λ¦¬μ€νΈλ‘ λ³νν νμλ μμCounterλ₯Ό μ΄μ©νλ©΄ κ° λ¬Έμμ κ°μ μΈλ μμ
μ λ§€μ° μ½κ² ν μ μλ€.
Counterλ λ¨μν μνμ€ μλ£νμ λ°μ΄ν°λ₯Ό μΈλ μν λ νμ§λ§, λμ λ리 ννλ ν€μλ ννμ 맀κ°λ³μλ₯Ό μ¬μ©νμ¬ Counterλ₯Ό μμ±ν μλ μλ€.text = """A press release is the quickest and easiest way to get free publicity. If well written, a press release can result in multiple published articles about your firm and its products. And that can mean new prospects contacting you asking you to sell to them.""".lower().split() Counter(text) # Counter({'and': 3, 'to': 3, 'a': 2, 'press': 2, 'release': 2, 'can': 2,'you': 2, 'is': 1, 'the': 1, 'quickest': 1, 'easiest': 1, 'way': 1, 'get': 1,'free': 1, 'publicity.': 1, 'if': 1, 'well': 1, 'written,': 1, 'result': 1,'in': 1, 'multiple': 1, 'published': 1, 'articles': 1, 'about': 1, 'your': 1,'firm': 1, 'its': 1, 'products.': 1, 'that': 1, 'mean': 1, 'new': 1,'prospects': 1, 'contacting': 1, 'asking': 1, 'sell': 1, 'them.': 1})
- λμ λ리 ννλ‘ Counter κ°μ²΄λ₯Ό μμ±νλ λ°©λ²
{'red': 4, 'blue': 2}λΌλ μ΄κΉκ°μ μ¬μ©νμ¬ Counterλ₯Ό μμ± elements() ν¨μλ₯Ό μ¬μ©νμ¬ κ° μμμ κ°μλ§νΌ 리μ€νΈνμ κ²°κ³Όλ₯Ό μΆλ ₯from collections import Counter c = Counter({'red': 4, 'blue': 2}) print(c) # Counter({'red': 4, 'blue': 2}) print(list(c.elements())) # ['red', 'red', 'red', 'red', 'blue', 'blue']
- ν€μλ ννμ 맀κ°λ³μλ₯Ό μ¬μ©νμ¬ Counterλ₯Ό μμ±νλ λ°©λ²
맀κ°λ³μμ μ΄λ¦μ ν€λ‘, μ€μ κ°μ κ°μΌλ‘ νμ¬ Counterλ₯Ό μμ±from collections import Counter c = Counter(cats = 4, dogs = 8) print(c) # Counter({'dogs': 8, 'cats': 4}) print(list(c.elements())) # ['cats', 'cats', 'cats', 'cats', 'dogs', 'dogs', 'dogs', 'dogs', 'dogs','dogs', 'dogs', 'dogs']
- Counterλ κΈ°λ³Έ μ¬μΉμ°μ° μ§μ νμ΄μ¬μμ μ§μνλ κΈ°λ³Έ μ°μ°μΈ λ§μ , λΊμ , λ Όλ¦¬ μ°μ° λ±μ΄ κ°λ₯νλ€.
2κ°μ Counter cμ dλ₯Ό μμ±ν ν c.subtract(d)λ₯Ό μννμ¬ cμ λν dμ μ°¨λ₯Ό ꡬν κ²°κ³Ό : cμ μλ κ° μμμ κ°μκ° dμ μλ μμμ κ°μλ§νΌ κ°μfrom collections import Counter c = Counter(a = 4, b = 2, c = 0, d = -2) d = Counter(a = 1, b = 2, c = 3, d = 4) c.subtract(d) # c - d c # Counter({'a': 3, 'b': 0, 'c': -3, 'd': -6})
- κΈ°νΈλ λ Counter κ°μ²΄μ μλ κ° μμλ₯Ό λν κ²μ΄κ³ , & κΈ°νΈλ λ κ°μ²΄μ κ°μ κ°μ΄ μμ λ, μ¦ κ΅μ§ν©μ κ²½μ°μλ§ μΆλ ₯ λ°λλ‘ I κΈ°νΈλ λ Counter κ°μ²΄μμ νλκ° ν¬ν¨λμ΄ μλ€λ©΄, κ·Έλ¦¬κ³ μ’ λ ν° κ°μ΄ μλ€λ©΄, κ·Έ κ°μΌλ‘ ν©μ§ν©μ μ μ©
- from collections import Counter c = Counter(a = 4, b = 2, c = 0, d = -2) d = Counter(a = 1, b = 2, c = 3, d = 4) print(c + d) # Counter({'a': 5, 'b': 4, 'c': 3, 'd': 2}) print(c & d) # Counter({'b': 2, 'a': 1}) print(c | d) # Counter({'a': 4, 'd': 4, 'c': 3, 'b': 2})
- μ λ ¬κΉμ§ λλΈ κ²°κ³Όλ¬Ό νμΈ
- λ€μμΌλ‘ cλΌλ Counter κ°μ²΄λ₯Ό μμ±νλ©΄μ text λ³μλ₯Ό μ΄κΉκ°μΌλ‘ μ€μ μ΄λ₯Ό μΆλ ₯νλ©΄ κ° μνλ²³μ΄ λͺ κ°μ© μλμ§ μ½κ² νμΈν μ μλ€. κ·Έλ¦¬κ³ c["a"]μ²λΌ λμ λ리 ννμ λ¬Έλ²μ κ·Έλλ‘ μ΄μ©ν΄ νΉμ ν μ€νΈμ κ°μλ λ°λ‘ μΆλ ₯
- from collections import Counter text = list("gallahad") text # ['g', 'a', 'l', 'l', 'a', 'h', 'a', 'd'] c = Counter(text) c # Counter({'a': 3, 'l': 2, 'g': 1, 'h': 1, 'd': 1}) c["a"] # 3
- Counter λͺ¨λμ μνμ€ μλ£νμ λ°μ΄ν° κ°μ κ°μλ₯Ό λμ λ리 ννλ‘ λ°ννλ λ°©λ²
- namedtuple λͺ¨λ
Point = namedtuple(’Point', ['x', 'y']) μ½λμμ Point κ°μ²΄μ μ΄λ¦μ Pointλ‘ μ§μ νκ³ , μ μ₯λλ μμμ μ΄λ¦μ xμ yλ‘ μ§μ νλ€.from collections import namedtuple Point = namedtuple('Point', ['x', 'y']) # μ’ν νλ©΄μμμ μ μ μμΉλ₯Ό νννκΈ° μν΄ PointλΌλ κ°μ²΄λ₯Ό μμ±νμ¬ κ°μ μ μ₯ν namedtuple p = Point(11, y=22) P # Point(x=11, y=22) p.x, p.y # (11, 22) print(p[0] + p[1]) # 33
- p λ³μμ μ μ₯λ κ°μ νΈμΆνλ λ°©λ²
- λ€μμΌλ‘ Point κ°μ²΄λ₯Ό μμ±νλ€. (μμ±μ ν¨μμ λΉμ·νλ€.) Point κ°μ²΄μμxμ yλ₯Ό λ³μλ‘ μ¬μ©νκ³ μκ³ κ°κ° p = Point(11, y=22)μμ μ°¨λ‘λ‘ μ¬μ©λμ΄ κ°μ μ μ₯ν μ μλ€. μ λ ₯λ κ°μ p λ³μμ μ μ₯νλ€.
- ννμ ννλ‘ λ°μ΄ν° ꡬ쑰체λ₯Ό μ μ₯νλ λ°©λ²
'π μ€ν°λ > νμ΄μ¬ μ€ν°λ κ°μμλ£' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[1ν/νμμ] 7μ°¨μ νμ΄μ¬ μ€ν°λ - μλ£κ΅¬μ‘° (0) | 2023.05.11 |
---|---|
[1ν/νκ·λ¦Ό] 7μ°¨μ νμ΄μ¬ μ€ν°λ - μλ£κ΅¬μ‘° (0) | 2023.05.11 |
[2ν/κΉμΈμ°] 7μ°¨μ νμ΄μ¬ μ€ν°λ - μλ£κ΅¬μ‘° (1) | 2023.05.11 |
[4ν/μ΄μ μ] 7μ°¨μ νμ΄μ¬ μ€ν°λ - μλ£κ΅¬μ‘° (0) | 2023.05.11 |
[3ν/κΉκ·λ¦¬] 7μ°¨μ νμ΄μ¬ μ€ν°λ - μλ£κ΅¬μ‘° (2) | 2023.05.10 |