(Python 3-1๊ฐ•) Python Data Structure

210803

ํŒŒ์ด์ฌ ๊ธฐ๋ณธ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ

  • ์Šคํƒ๊ณผ ํ

  • ํŠœํ”Œ๊ณผ ์ง‘ํ•ฉ

  • ์‚ฌ์ „

  • Collection ๋ชจ๋“ˆ

์Šคํƒ

  • ๋‚˜์ค‘์— ๋„ฃ์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋จผ์ € ๋ฐ˜ํ™˜ํ•˜๋„๋ก ์„ค๊ณ„๋œ ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ

  • Last In First Out (LIFO)

  • Data์˜ ์ž…๋ ฅ์„ Push, ์ถœ๋ ฅ์„ Pop์ด๋ผ๊ณ  ํ•จ

ํ

  • ๋จผ์ € ๋„ฃ์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋จผ์ € ๋ฐ˜ํ™˜ํ•˜๋„๋ก ์„ค๊ณ„๋œ ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ

  • First In First Out (FIFO)

  • Stack๊ณผ ๋ฐ˜๋Œ€๋˜๋Š” ๊ฐœ๋…

ํŠœํ”Œ

  • ๊ฐ’์˜ ๋ณ€๊ฒฝ์ด ๋ถˆ๊ฐ€๋Šฅํ•œ ๋ฆฌ์ŠคํŠธ

  • ์„ ์–ธ ์‹œ โ€œ[ ]โ€ ๊ฐ€ ์•„๋‹Œ โ€œ( )โ€๋ฅผ ์‚ฌ์šฉ

  • ๋ฆฌ์ŠคํŠธ์˜ ์—ฐ์‚ฐ, ์ธ๋ฑ์‹ฑ, ์Šฌ๋ผ์ด์‹ฑ ๋“ฑ์„ ๋™์ผํ•˜๊ฒŒ ์‚ฌ์šฉ

  • ์™œ ์‚ฌ์šฉํ•˜๋Š”๊ฐ€?

    • ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘๋™ํ•˜๋Š” ๋™์•ˆ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์€ ๋ฐ์ดํ„ฐ์˜ ์ €์žฅ Ex) ํ•™๋ฒˆ, ์ด๋ฆ„, ์šฐํŽธ๋ฒˆํ˜ธ ๋“ฑ๋“ฑ

    • ํ•จ์ˆ˜์˜ ๋ฐ˜ํ™˜ ๊ฐ’๋“ฑ ์‚ฌ์šฉ์ž์˜ ์‹ค์ˆ˜์— ์˜ํ•œ ์—๋Ÿฌ๋ฅผ ์‚ฌ์ „์— ๋ฐฉ์ง€

์ง‘ํ•ฉ

  • ๊ฐ’์„ ์ˆœ์„œ์—†์ด ์ €์žฅ, ์ค‘๋ณต ๋ถˆํ—ˆ ํ•˜๋Š” ์ž๋ฃŒํ˜•

  • set ๊ฐ์ฒด ์„ ์–ธ์„ ์ด์šฉํ•˜์—ฌ ๊ฐ์ฒด ์ƒ์„ฑ

๋”•์…”๋„ˆ๋ฆฌ

  • ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅ ํ•  ๋•Œ๋Š” ๊ตฌ๋ถ„ ์ง€์„ ์ˆ˜ ์žˆ๋Š” ๊ฐ’์„ ํ•จ๊ป˜ ์ €์žฅ ์˜ˆ) ์ฃผ๋ฏผ๋“ฑ๋ก ๋ฒˆํ˜ธ, ์ œํ’ˆ ๋ชจ๋ธ ๋ฒˆํ˜ธ

  • ๊ตฌ๋ถ„์„ ์œ„ํ•œ ๋ฐ์ดํ„ฐ ๊ณ ์œ  ๊ฐ’์„ Identifier ๋˜๋Š” Key ๋ผ๊ณ ํ•จ

  • Key ๊ฐ’์„ ํ™œ์šฉํ•˜์—ฌ, ๋ฐ์ดํ„ฐ ๊ฐ’(Value)๋ฅผ ๊ด€๋ฆฌํ•จ

Collections

  • List, Tuple, Dict์— ๋Œ€ํ•œ Python Built-in ํ™•์žฅ ์ž๋ฃŒ ๊ตฌ์กฐ(๋ชจ๋“ˆ)

  • ํŽธ์˜์„ฑ, ์‹คํ–‰ ํšจ์œจ ๋“ฑ์„ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ œ๊ณตํ•จ

  • ์•„๋ž˜์˜ ๋ชจ๋“ˆ์ด ์กด์žฌํ•จ

from collections import deque
from collections import Counter
from collections import OrderedDict
from collections import defaultdict
from collections import namedtuple
  • deque

    • Stack๊ณผ Queue ๋ฅผ ์ง€์›ํ•˜๋Š” ๋ชจ๋“ˆ

    • List์— ๋น„ํ•ด ํšจ์œจ์ ์ธ=๋น ๋ฅธ ์ž๋ฃŒ ์ €์žฅ ๋ฐฉ์‹์„ ์ง€์›ํ•จ => ์ฒ˜๋ฆฌ ์†๋„ ํ–ฅ์ƒ

    • rotate, reverse๋“ฑ Linked List์˜ ํŠน์„ฑ์„ ์ง€์›ํ•จ

    • ๊ธฐ์กด list ํ˜•ํƒœ์˜ ํ•จ์ˆ˜๋ฅผ ๋ชจ๋‘ ์ง€์›ํ•จ

  • OrderedDict

    • Dict์™€ ๋‹ฌ๋ฆฌ, ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅํ•œ ์ˆœ์„œ๋Œ€๋กœ dict๋ฅผ ๋ฐ˜ํ™˜ํ•จ

      ๊ทธ๋Ÿฌ๋‚˜ dict๋„ python 3.6 ๋ถ€ํ„ฐ ์ž…๋ ฅํ•œ ์ˆœ์„œ๋ฅผ ๋ณด์žฅํ•˜์—ฌ ์ถœ๋ ฅํ•จ

  • defaultdict

    • Dict type์˜ ๊ฐ’์— ๊ธฐ๋ณธ ๊ฐ’์„ ์ง€์ •, ์‹ ๊ทœ๊ฐ’ ์ƒ์„ฑ์‹œ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•

  • Counter

    • Sequence type์˜ data element๋“ค์˜ ๊ฐฏ์ˆ˜๋ฅผ dict ํ˜•ํƒœ๋กœ ๋ฐ˜ํ™˜

    • counter.elements() ๋กœ count๋งŒํผ์˜ key๋ฅผ list๋กœ ๋ฐ˜ํ™˜

    • counter.subtract(counter) ๋กœ set์˜ ์—ฐ์‚ฐ๋“ค์„ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

      • counter - counter ๋กœ๋„ ์‚ฌ์šฉ๊ฐ€๋Šฅ

namedtuple

  • Tuple ํ˜•ํƒœ๋กœ Data ๊ตฌ์กฐ์ฒด๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•

  • ์ €์žฅ๋˜๋Š” data์˜ variable์„ ์‚ฌ์ „์— ์ง€์ •ํ•ด์„œ ์ €์žฅํ•จ

Last updated

Was this helpful?