* ์ด ๊ธ์ ๋ค์ด๋ฒ ๋ถ์คํธ ์ฝ์ค์ ์ธ๊ณต์ง๋ฅ(AI) ๊ธฐ์ด ๋ค์ง๊ธฐ ๊ฐ์๋ฅผ ์๊ฐํ๋ฉฐ ์ ๋ฆฌํ ๊ธ์ ๋๋ค.
์ปฌ๋์ ๋ชจ๋์ด๋?
๋ฆฌ์คํธ, ํํ, ๋์ ๋๋ฆฌ์ ๋ํ ํ์ด์ฌ ๋น๋์ธ ์๋ฃ๊ตฌ์กฐ๋ก,
ํธ์์ฑ, ์คํํจ์จ์ ์ ๊ณต
1) import deque
- ์คํ๊ณผ ํ๋ฅผ ์ง์
- doubled ended queue๋ก ์๋ฐฉํฅ ๋งํฌ๋ ๋ฆฌ์คํธ๋ก ๊ตฌํ๋จ
- ์ผ๋ฐ ๋ฆฌ์คํธ์ ๋นํด ๊ธธ์ด 100๊ฐ์ ๋ฆฌ์คํธ ๊ธฐ์ค 3๋ฐฐ ์๊ฐ์ด ์ค์ด๋ฆ
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | from collections import deque #๋ํ ๋ชจ๋์ ๋ํ ํด๋์ค ๊ฐ์ฒด ์ ์ธ queue_two = deque() #์ ์ธ ๋ ํ ๊ฐ์ฒด์ ํ๋์ ์์ ์
๋ ฅ ##์ผ๋ฐ queue_two.append(element) ##์ผ์ชฝ์ ์์ ์
๋ ฅ queue_two.appendleft(element) ##์ค๊ฐ(list_index)์ ์์ ์
๋ ฅ queue_two.insert(list_index, element) #์ ์ธ ๋ ํ ๊ฐ์ฒด์ ์ฌ๋ฌ๊ฐ์ ์์ ์
๋ ฅ ##์ผ๋ฐ queue_two.extend([element_list]) ##์ผ์ชฝ์ ์ฌ๋ฌ๊ฐ์ ์์ ์
๋ ฅ queue_two.extendleft([element_list]) #์ ์ธ ๋ ํ ๊ฐ์ฒด์์ ์์ ํ๋์ฉ ๊บผ๋ด๊ธฐ ##์ผ๋ฐ print(queue_two.popleft()) ##์ค๋ฅธ์ชฝ print(queue_two.pop()) | cs |
2) import Counter
- ํด๋น ๋ชจ๋์ ๊ธฐ์ตํด๋๊ธฐ
- Sequence type์ data element๋ค์ ๊ฐฏ์๋ฅผ dict ํํ๋ก ๋ฐํ
1 2 3 4 5 6 7 8 9 | import collections import Counter #์นด์ดํฐ ๋ชจ๋์ ์นด์ดํฐ ํด๋์ค ๊ฐ์ฒด ์ ์ธ c=Counter() #์นด์ดํฐ ๋ชจ๋์ ์นด์ดํฐ ํด๋์ค ๊ฐ์ฒด ์ ์ธ c=Counter('string') print(c) #Counter({'s':1, 't':1, 'r':1, 'i':1, 'n':1, 'g':1}) | cs |
- counter -> list
1 2 3 4 5 6 7 | import collections import Counter #์นด์ดํฐ ๋ชจ๋์ ์นด์ดํฐ ํด๋์ค ๊ฐ์ฒด ์ ์ธ c=Counter(cats=4, dogs=4) print(list(c.elements())) ##['cats', 'cats', 'cats', 'cats', 'dogs', 'dogs', 'dogs', 'dogs'] | cs |
- ์งํฉ์ฐ์ฐ ์ฌ์ฉ ๊ฐ๋ฅ
+, -
| &
3) import OrderedDict
- ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฅํ ์์๋๋ก dict ๋ฐํ -> python 3.6๋ถํฐ๋ ์ด ๊ธฐ๋ฅ์ด ๋ณด์ฅ๋จ
4) import defaultdict
- ์ ๊ท๊ฐ ์์ฑ์ ๊ธฐ๋ณธ๊ฐ์ ์ง์
1 2 3 4 5 6 7 8 9 10 | from collections import defalutdict #defaultdict ๋ชจ๋์ defaultdict ํด๋์ค ๊ฐ์ฒด ์ ์ธ d=defaultdict(object) #์ ์ธ ๋ defaultdict ๊ฐ์ฒด์ ํจ์ ํํ๋ก ๊ธฐ๋ณธ๊ฐ ์ง์ d=defaultdict(lambda : 0) #๋์
๋๋ฆฌ ๊ฐ์ฒด์ ํด๋น ํค๊ฐ์ด ์์ด๋ ์ค๋ฅ๋ฅผ ๋ด์ง ์๊ณ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์ ์ฅ print(d["first"]) | cs |
์์ ) ํ๋์ ์ง๋ฌธ์ ๊ฐ ๋จ์ด๋ค์ด ๋ช๊ฐ๋ ์๋์ง ์ธ์ด๋ณด์.
# text๋ string์ผ๋ก ์ฃผ์ด์ง๋
from collections import OrderedDict
d=defaultdict(lambda : 0)
for word in text.split():
d[word]+=1
5) import namedtuple
- ํ์ฉ : ํ๋ก๊ทธ๋จ์ด ์๋ํ๋ ๋์ ๋ณ๊ฒฝ๋์ง ์๋ ๋ฐ์ดํฐ ์ ์ฅ
์ฃผ๋ก ํจ์์ ๋ฐํ๊ฐ์ผ๋ก ๋ง์ด ์ฌ์ฉ๋์ด ์๋ฌ๋ฅผ ๋ฐฉ์ง
- ํน์ด์ฌํญ : ๊ฐ์ ์ฌํ ๋น ๋ถ๊ฐ๋ฅ
- Tuple ํํ๋ก Data ๊ตฌ์กฐ์ฒด๋ฅผ ์ ์ฅํ๋ ๋ฐฉ๋ฒ
- ์ ์ฅ๋๋ data์ variable์ ์ฌ์ ์ ์ง์ ํด์ ๋ณ๊ฒฝ์ ์ฐจ๋จ
1 2 3 4 5 6 7 8 9 10 11 | from collections import namedtuple #namedtuple ๋ชจ๋์ namedtuple ํด๋์ค ๊ฐ์ฒด ์ ์ธ #๊ตฌ์กฐ์ ๋ฅผ ์ ์ฅํ๋ค๊ณ ์๊ฐ Point=namedtuple('Point', ['x', 'y']) p=Point(11, y=22) #๊ฐ ํ ๋น x, y=p x, y=p.x, p.y | cs |
'์๊ณ ๋ฆฌ์ฆ๐ฅ > ๊ฐ๋ ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์๋ฐ ์ฝ๋ฉํ ์คํธ ๊ธฐ๋ณธ] 0. ์๋ฃํ์ ์ข ๋ฅ์ ํฌ๊ธฐ (0) | 2023.06.21 |
---|---|
[ํ์ด์ฌ ์ฝ๋ฉํ ์คํธ ๊ฐ๋ ] 2. ๋ฐํฌ(Deque) (0) | 2023.05.10 |
[ํ์ด์ฌ ์ฝ๋ฉํ ์คํธ ๊ฐ๋ ] 1-1. ์ฐ๊ฒฐ๋ฆฌ์คํธ - ๋ฌ๋ (0) | 2023.05.04 |
[ํ์ด์ฌ ๊ธฐ๋ณธ ๋ฐ์ดํฐ ๊ตฌ์กฐ] 2. ํํ, ์ธํธ, ๋์ ๋๋ฆฌ (0) | 2023.01.07 |
[ํ์ด์ฌ ๊ธฐ๋ณธ ๋ฐ์ดํฐ ๊ตฌ์กฐ] 1. ์คํ๊ณผ ํ (0) | 2023.01.03 |