[Python] ๐Ÿ”„ Iterable Data Type

๐Ÿค iterable data type์ด๋ž€?

: ๋ฐ˜๋ณต๊ฐ€๋Šฅํ•œ ์ž๋ฃŒํ˜•. ๊ฐ’์„ ์ฐจ๋ก€๋Œ€๋กœ ๊บผ๋‚ผ ์ˆ˜ ์žˆ๋Š” ๊ฐ์ฒด์ด๋‹ค.
ex) for _ in iterable_data_type

1. basic data type

๐Ÿ†‚ str(string) ' ' " "

: text type and sequence type

  • ๋ฉ€ํ‹ฐ๋ผ์ธ: """ ํ˜น์€ '''
  • ์ปฌ๋ ‰์…˜ ์ ‘๊ทผ ๊ฐ€๋Šฅ
    ','.join(['item', 'item2']): ๋ฌธ์ž์—ด ํ•ฉ์น  ๋•Œ ์‚ฌ์šฉ, ๊ตฌ๋ถ„์ž ๋ช…์‹œ ๊ฐ€๋Šฅ
    'item,item2'.split(','): ๋ฌธ์ž์—ด์„ ๊ตฌ๋ถ„์ž๋กœ ๋‚˜๋ˆ„์–ด ๋ฆฌ์ŠคํŠธ๋กœ ๋ณ€ํ™˜
    s.strip(): ์ขŒ์šฐ๊ณต๋ฐฑ ์ œ๊ฑฐ

2. collection data type

๐Ÿ…ป list [ ]

: sequence type, mutable

  • ์—ฌ๋Ÿฌ ํƒ€์ž…์ด ํ•จ๊ป˜ ํฌํ•จ๋  ์ˆ˜ ์žˆ์Œ
  • indexing: ์Œ์ˆ˜(-) ์ธ๋ฑ์‹ฑ๋„ ๊ฐ€๋Šฅ
  • slicing: ๋ฆฌ์ŠคํŠธ ๋ณ€์ˆ˜[start:end:step]
  • step์— -1์„ ๋„ฃ์œผ๋ฉด reverse ๊ฐ€๋Šฅ
  • ๋ฆฌ์ŠคํŠธ ๋ณต์‚ฌ ๋ฐฉ๋ฒ•
  1. new_l = l.copy()
  2. new_l = list(l)
  3. l = new_l[:]
  • ์ฐพ๊ธฐ
    l.index(item) : item์ด ์žˆ์œผ๋ฉด index๋ฅผ ๋ฐ˜ํ™˜, ์—†์œผ๋ฉด ValueError
    l.count(item) : item๊ณผ ๋งค์นญ๋˜๋Š” ๊ฐœ์ˆ˜ ๋ฐ˜ํ™˜
    item in l : item์ด ํฌํ•จ๋˜์–ด์žˆ๋Š”์ง€ True/False๋กœ ๋ฐ˜ํ™˜

  • ์›์†Œ ์ถ”๊ฐ€
    l.append(item): item ์›์†Œ๋ฅผ ๋งˆ์ง€๋ง‰์— ์ถ”๊ฐ€
    l.insert(index, value): ์›ํ•˜๋Š” ์œ„์น˜์— ์ถ”๊ฐ€
    + ์—ฐ์‚ฐ์ž๋กœ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Œ, * ์—ฐ์‚ฐ์ž๋กœ ๋ฐ˜๋ณต ๊ฐ€๋Šฅ
    l.extend(new_l)

  • ์›์†Œ์‚ญ์ œ
    del l[index_number]
    l.remove(item) : ์—†์œผ๋ฉด ValueError
    = del l[l.index(index_number)]

  • ์ •๋ ฌ
    l.reverse() : ๊ฑฐ๊พธ๋กœ ์ •๋ ฌ(๋ฐ˜ํ™˜๊ฐ’์ด 0์ž„์„ ์ฃผ์˜)
    l.sort() : ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ. parameters๋ฅผ ์ด์šฉํ•ด ๊ธฐ์ค€์— ๋”ฐ๋ฅธ ์ •๋ ฌ(key=๊ธฐ์ค€)๊ณผ ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌ(reverse=True)๋„ ๊ฐ€๋Šฅํ•˜๋‹ค

๐Ÿ†ƒ tuple ( )

: sequence type, immutable

  • ๋‹ค์–‘ํ•œ ํƒ€์ž… ํฌํ•จ ๊ฐ€๋Šฅ
  • + ์—ฐ์‚ฐ์ž๋กœ ์ถ”๊ฐ€, * ์—ฐ์‚ฐ์ž๋กœ ๋ฐ˜๋ณต ๊ฐ€๋Šฅ
  • ํ•˜๋‚˜์˜ ์›์†Œ๋กœ๋Š” tuple์ด ์•ˆ ๋จ.
    ์›์†Œ ๋’ค์— , ๋ฅผ ์ฐ์–ด์ฃผ๋ฉด tuple ์œ ์ง€
  • tuple(iterable_object) ๊ฐ€๋Šฅ
  • item in t ์œผ๋กœ ํฌํ•จ ์—ฌ๋ถ€ ํ™•์ธ ๊ฐ€๋Šฅ

๐Ÿ† range(start, end, step)

: sequence type

  • start์™€ step์€ ์ƒ๋žต ๊ฐ€๋Šฅ
  • ๊ฐ’์„ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋‹ค๋ฅธ ์ˆœ์„œ ์ปฌ๋ ‰์…˜์œผ๋กœ ๋ณ€ํ™˜ํ•ด์•ผ ํ•จ
  • but ํŒŒ์ด์ฌ์—์„œ for i in range(...)๋Š” ๊ถŒ์žฅํ•˜์ง€ ์•Š๋Š” ํŒจํ„ด
    for i in s: print(i) ๋ฅผ ๊ถŒ์žฅ

๐Ÿ†‚ set { }

: set type(์ง‘ํ•ฉํ˜•), mutable, ์ˆœ์„œ ์—†์Œ

  • mutableํ•œ ์›์†Œ๋ฅผ ๊ฐ€์งˆ์ˆ˜ ์—†๋‹ค
  • ๋นˆ set์€ ์ƒ์„ฑ์ž(set())๋งŒ์„ ์ด์šฉํ•ด ์„ ์–ธ ๊ฐ€๋Šฅ
  • ์ค‘๋ณต๊ฐ’์€ ์ž๋™์œผ๋กœ ์ œ๊ฑฐ
  • _ in s๋กœ ํฌํ•จ ์—ฌ๋ถ€ ํ™•์ธ ๊ฐ€๋Šฅ
  • s.add(item) : ์›์†Œ์ถ”๊ฐ€
  • s.update() : ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ ํ•จ๊ป˜ ์ถ”๊ฐ€ํ•  ๋•Œ
  • s.remove(item) : item ์›์†Œ ์ œ๊ฑฐ, ์—†์œผ๋ฉด KeyError
  • s.discard(item) : item ์›์†Œ ์ œ๊ฑฐ, ์—†์–ด๋„ ์—๋Ÿฌ ๋ฐœ์ƒํ•˜์ง€ ์•Š์Œ
  • s.copy()์™€ ์ƒ์„ฑ์ž(set())๋กœ ๋ณต์‚ฌ ๊ฐ€๋Šฅ
  • ์—ฐ์‚ฐ
    | : ํ•ฉ์ง‘ํ•ฉ = s.union()
    & : ๊ต์ง‘ํ•ฉ = s.intersection()
    - : ์ฐจ์ง‘ํ•ฉ = s.difference()
    ^ : ๋Œ€์นญ์ฐจ์ง‘ํ•ฉ(ํ•ฉ์ง‘ํ•ฉ - ๊ต์ง‘ํ•ฉ) = s.symmetric_difference()
    s1.issubset(s2) : s1์ด s2์˜ ๋ถ€๋ถ„์ง‘ํ•ฉ์ธ์ง€ True/False ๋ฐ˜ํ™˜
    s1.isdisjoint(s2) : s1๊ณผ s2์˜ ๊ต์ง‘ํ•ฉ์ด ์—†์œผ๋ฉด True, ์žˆ์œผ๋ฉด False

๐Ÿ…ณ dict(dictionary) { key : value }

: mapping type, mutable, python 3.7๋ถ€ํ„ฐ ์ˆœ์„œ ์žˆ์Œ

  • key๋Š” immutable object๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
  • ๊ฐ’์€ ์ค‘๋ณต ๊ฐ€๋Šฅํ•˜๋‚˜ ํ‚ค๊ฐ€ ์ค‘๋ณต๋˜๋ฉด ๋งˆ์ง€๋ง‰ ๊ฐ’์œผ๋กœ ๋ฎ์–ด์“ฐ๊ธฐ๋จ
  • dict(k = v, k = v ...) ํ˜•์‹์œผ๋กœ ๊ฐ’์„ ํ• ๋‹นํ•˜๋ฉฐ ์„ ์–ธ ๊ฐ€๋Šฅ
  • _ in d๋Š” ํ‚ค์— ๋Œ€ํ•ด์„œ๋งŒ ๊ฐ€๋Šฅ
  • 2์ฐจ์› ๋ฆฌ์ŠคํŠธ๋‚˜ ํŠœํ”Œ์„ ๋”•์…”๋„ˆ๋ฆฌ๋กœ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ
  • ์ถ”๊ฐ€/์ˆ˜์ •: ํ‚ค๋กœ ์ ‘๊ทผํ•ด ๊ฐ’์„ ํ• ๋‹น. d[key] = value
    ์—ฌ๋Ÿฌ ๊ฐ’ ์ˆ˜์ •: d.update( {k : v, k : v ...} ) ํ‚ค๊ฐ€ ์—†์œผ๋ฉด ์ถ”๊ฐ€๋จ
  • ์‚ญ์ œ: del d[key]
  • for ๋ฌธ์œผ๋กœ ๋Œ๋ฆฌ๋ฉด key๊ฐ’์ด ๋‚˜์˜ด
    for val in d.values() ๋กœ ๊ฐ’์— ๋Œ€ํ•ด์„œ๋„ ๊ฐ€๋Šฅ
    for key, val d.items( )๋กœ key์™€ ๊ฐ’์— ๋Œ€ํ•ด์„œ๋„ ๊ฐ€๋Šฅ


reference...

https://m.blog.naver.com/youndok/222200162081
https://wikidocs.net/16068
https://wikidocs.net/16044
https://ebbnflow.tistory.com/255

profile
โ˜บ๏ธŽ๐”ป๐•  ๐•จ๐•™๐•’๐•ฅ ๐•ž๐•’๐•œ๐•–๐•ค ๐•ช๐• ๐•ฆ ๐•™๐•’๐•ก๐•ก๐•ชโ˜บ๏ธ

0๊ฐœ์˜ ๋Œ“๊ธ€