[Python] collection
Updated:
Python collection
λ¬Έμ λ₯Ό νλ€ λͺ¨λ₯΄λκ² μμ΄ collection μ κ²μν΄λ΄€λλ° μ΄λ―Έ κ²μμ ν΄λ³Έ κ°λ μ΄μλ€..
κ·Έλμ μ΄μ λͺ¨λ₯΄λκ² μκΈ°κ³ κ²μμ ν΄μ μκ²λλ©΄ κΌ μ 리λ₯Ό ν΄μΌκ² λ€κ³ λ§μ λ¨Ήμλ€.
collection μ μ¬λ¬ μλ£νμ μλ λ°μ΄ν° κ°μλ₯Ό μΈμ΄ dict ννλ‘ λ°νμ ν΄μ£Όλ λͺ¨λμ΄λ€.
list
import collections
_list = [1, 1, 2, 2, 2, 2, 3, 3, 4, 5, 6, 6, 7]
print(collections.Counter(_list))
# Counter({2: 4, 1: 2, 3: 2, 6: 2, 4: 1, 5: 1, 7: 1})
λ€μκ³Ό κ°μ΄ 리μ€νΈμ μλ λ°μ΄ν° κ°μλ₯Ό μΈμ£ΌκΈ°λ νκ³
str
import collections
_str = 'aabbbccdd111223'
print(collections.Counter(_str))
# Counter({'b': 3, '1': 3, 'a': 2, 'c': 2, 'd': 2, '2': 2, '3': 1})
λ¬Έμμ΄μ μλ λ¬Έμ κ°μλ μΈμ€λ€.
dict
import collections
_dict = {'κ°': 1, 'λ': 3, 'λ€': 2}
print(collections.Counter(_dict))
# Counter({'λ': 3, 'λ€': 2, 'κ°': 1})
dict λ₯Ό λ£μΌλ©΄ value κ°μ΄ ν° μμλλ‘ μ λ ¬μ ν΄μ€λ€.
λ€μν μ°μ°
import collections
cnt_a = collections.Counter('aabbcc')
cnt_b = collections.Counter('ccddee')
print(cnt_a + cnt_b) # Counter({'c': 4, 'a': 2, 'b': 2, 'd': 2, 'e': 2})
print(cnt_a - cnt_b) # Counter({'a': 2, 'b': 2})
print(cnt_a & cnt_b) # Counter({'c': 2})
print(cnt_a | cnt_b) # Counter({'a': 2, 'b': 2, 'c': 2, 'd': 2, 'e': 2})
λ€μν μ°μ°λ κ°λ₯νλ€. λΊμ μ κ²½μ° μμκ° μκΈ°λ©΄ μΆλ ₯νμ§ μλλ€. cnt_a - cnt_b λ₯Ό νκΈ° λλ¬Έμ d, e λ -2 κ° λμ΄ μΆλ ₯λμ§ μλλ€.
κ΅μ§ν©κ³Ό ν©μ§ν©λ μ°μ°μ΄ κ°λ₯νλ€.
import collections
cnt_a = collections.Counter('aabbcc')
cnt_b = collections.Counter('ccddee')
cnt_a.subtract(cnt_b)
print(cnt_a) # Counter({'a': 2, 'b': 2, 'c': 0, 'd': -2, 'e': -2})
μμ λΊμ μ κ²½μ° μμκ° μκΈ°λ©΄ μΆλ ₯νμ§ μμ§λ§ subtract λ₯Ό μ¬μ©νλ©΄ μμ κ°λ μΆλ ₯μ΄ κ°λ₯νλ€.
Leave a comment