ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • ํŒŒ์ด์ฌ ๊ธฐ์ดˆ 3. ๋ฆฌ์ŠคํŠธ, ํŠœํ”Œ, ๋”•์…”๋„ˆ๋ฆฌ, ์ง‘ํ•ฉ ์ž๋ฃŒํ˜•
    PYTHON 2020. 8. 27. 22:36

    ๐ŸŽฏ ํŒŒ์ด์ฌ ์ปจํ…Œ์ด๋„ˆ ์ž๋ฃŒํ˜•์˜ ๋ฆฌ์ŠคํŠธ, ํŠœํ”Œ, ๋”•์…”๋„ˆ๋ฆฌ, set์ง‘ํ•ฉ์„ ์•Œ์•„๋ณธ๋‹ค.

     

     

     

     

    ๋ฆฌ์ŠคํŠธ

    ์ˆœ์„œO, ์ค‘๋ณตO, ์ˆ˜์ •O, ์‚ญ์ œO

     

    ๋ฆฌ์ŠคํŠธ ์„ ์–ธ

    a = []
    b = list()
    c = [1, 2, 3, 4]
    d = [10, 100, 'Pen', 'Cap', 'Plate']
    e = [10, 100, ['Pen', 'Cap', 'Plate']]

    ๋นˆ [๊ด„ํ˜ธ]๋ฅผ ์—ด์–ด์„œ ์„ ์–ธํ•  ์ˆ˜ ์žˆ๊ณ , list() ํ•จ์ˆ˜๋กœ ์„ ์–ธํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ฆฌ์ŠคํŠธ์— ์ง์ ‘ ์•„์ดํ…œ๋“ค์„ ๋„ฃ์„ ์ˆ˜ ์žˆ๋‹ค. ๋ฆฌ์ŠคํŠธ์—๋Š” ์—ฌ๋Ÿฌ ํƒ€์ž…์„ ์„ž์–ด์„œ ๋„ฃ์„ ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋ฆฌ์ŠคํŠธ ์•ˆ์— ๋ฆฌ์ŠคํŠธ๋ฅผ ์ค‘์ฒฉํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

     

     

    ์ธ๋ฑ์‹ฑ

    print('d - ', d[1])
    print('d - ', d[0] + d[1] + d[1])  # d -  100
    print('d - ', d[-1])
    print('e - ', e[-1][1])
    print('e - ', e[-1][1][4])

    ๋ฆฌ์ŠคํŠธ๋Š” ์ˆœ์„œ๋ฅผ ๊ฐ€์ง„๋‹ค. ์ฒซ์งธ์ž๋ฆฌ๋Š” ์ธ๋ฑ์Šค ๊ทœ์น™์— ๋”ฐ๋ผ 0๋ฒˆ์œผ๋กœ ๋ถ€๋ฅธ๋‹ค. -1์€ ๋’ค์—์„œ ์ฒซ๋ฒˆ์งธ ์ž๋ฆฌ๋ฅผ ์˜๋ฏธํ•œ๋‹ค. d[1][2] ํ˜•์‹์€ ์ค‘์ฒฉ๋ฆฌ์ŠคํŠธ์—์„œ ์‚ฌ์šฉ๋œ๋‹ค. ์ธ๋ฑ์Šค1๋ฒˆ ๋ฆฌ์ŠคํŠธ์˜ ์ธ๋ฑ์Šค2๋ฒˆ ์š”์†Œ๋ฅผ ๊ฐ€๋ฆฌํ‚จ๋‹ค๋Š” ๋œป์ด๋‹ค.

     

     

    ์Šฌ๋ผ์ด์‹ฑ

    print('d - ', d[0:3])
    print('d - ', d[2:])
    print('e - ', e[2][1:3])
    
    # d -  [10, 100, 'Pen']
    # d -  ['Pen', 'Cap', 'Plate']
    # e -  ['Cap', 'Plate']

    ์ธ๋ฑ์Šค 0๋ฒˆ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์„œ ์ธ๋ฑ์Šค 3๋ฒˆ ์ „๊นŒ์ง€ ์ž˜๋ผ์„œ ๋ณด์—ฌ์ค€๋‹ค. d[2:]๋Š” ์ธ๋ฑ์Šค 2๋ฒˆ๋ถ€ํ„ฐ ๋ฆฌ์ŠคํŠธ ๋๊นŒ์ง€ ๋ณด์—ฌ์ค€๋‹ค.

     

     

    ๋ฆฌ์ŠคํŠธ ์—ฐ์‚ฐ

    print('c + d - ', c + d)
    print('c * 3 - ', c * 3)
    print("'hi' + c[0] - ", 'hi' + str(c[0]))
    
    # c + d -  [1, 2, 3, 4, 10, 100, 'Pen', 'Cap', 'Plate']
    # c * 3 -  [1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4]
    # 'hi' + c[0] -  hi1

    ๋ฆฌ์ŠคํŠธ๋ฅผ ์—ฐ์‚ฐํ•  ๊ฒฝ์šฐ ์„œ๋กœ๋‹ค๋ฅธ ๋ฆฌ์ŠคํŠธ๊ฐ€ ํ•ฉ์ณ์ง„๋‹ค. ๋ฌธ์ž์—ด์— ๋ฆฌ์ŠคํŠธ์˜ ์š”์†Œ๋ฅผ ๋ง๋ถ™์—ฌ์„œ ํ”„๋ฆฐํŠธํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ ์š”์†Œ๊ฐ€ ์ˆซ์ž์ผ ๊ฒฝ์šฐ์—” ์ŠคํŠธ๋ง์œผ๋กœ ํ˜•๋ณ€ํ™˜ ํ›„ ๋ฌธ์ž์—ด๊ณผ ์—ฐ์‚ฐํ•œ๋‹ค.

     

     

    ๋ฆฌ์ŠคํŠธ ์ˆ˜์ •๊ณผ ์‚ญ์ œ

    c[0] = 4
    c[1:2] = ['a', 'b', 'c']
    c[1] = ['a', 'b', 'c']

    ๋ฆฌ์ŠคํŠธ์˜ ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณ€์ˆ˜์„ ์–ธํ•˜๋“ฏ ์š”์†Œ๋ฅผ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. ์Šฌ๋ผ์ด์‹ฑ์„ ์‚ฌ์šฉํ•ด ๋ฆฌ์ŠคํŠธ๋ฅผ ์ˆ˜์ •ํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

     

     

    ๋ฆฌ์ŠคํŠธ ํ•จ์ˆ˜

    a.append() : ๋ฆฌ์ŠคํŠธ ๋์— ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค.
    a.sort() : ๋ฆฌ์ŠคํŠธ๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ์ •๋ ฌํ•œ๋‹ค.
    a.reverse() : ๋ฆฌ์ŠคํŠธ๋ฅผ ๊ฑฐ๊พธ๋กœ ์ •๋ ฌํ•œ๋‹ค.
    a.insert() : ๋ฆฌ์ŠคํŠธ์— ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค.
    a.remove() : ๋ฆฌ์ŠคํŠธ์—์„œ ์š”์†Œ๋ฅผ ์‚ญ์ œํ•œ๋‹ค.
    a.pop() : ๋ฆฌ์ŠคํŠธ์˜ ๋์ž๋ฆฌ๋ฅผ ์‚ญ์ œํ•œ๋‹ค.
    a.extend() : ๋ฆฌ์ŠคํŠธ์— ๋ฆฌ์ŠคํŠธ๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค.

    ๋ฆฌ์ŠคํŠธ ํ•จ์ˆ˜์— ์ธ์ž๋กœ ์š”์†Œ๋ฅผ ์ „๋‹ฌํ•ด์„œ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค.

     

     

     

    ํŠœํ”Œ

    ์ˆœ์„œO, ์ค‘๋ณตO, ์ˆ˜์ •X,์‚ญ์ œX

     

    ์„ ์–ธ

    a = ()
    b = (1,)
    c = (1, 2, 3, 4)
    d = (10, 100, 'Pen', 'Cap', 'Plate')
    e = (10, 100, ('Pen', 'Cap', 'Plate'))

    ํŠœํ”Œ์€ (๋‘ฅ๊ทผ๊ด„ํ˜ธ)๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ์š”์†Œ๋ฅผ ํ•œ ๊ฐœ๋งŒ ๋„ฃ์„ ๊ฒฝ์šฐ ๋’ค์— ์ฝค๋งˆ๋ฅผ ๋ฐ˜๋“œ์‹œ ๋ถ™์—ฌ์•ผ ํ•œ๋‹ค. ํŠœํ”Œ ์•ˆ์— ์ค‘์ฒฉํŠœํ”Œ๋„ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค. ํŠœํ”Œ๋„ ์ˆœ์„œ๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ธ๋ฑ์Šค๋ฅผ ๊ฐ€์ง„๋‹ค. ์Šฌ๋ผ์ด์‹ฑ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

     

     

    ํŠœํ”Œ ์—ฐ์‚ฐ

    print('c + d - ', c + d)
    print('c * 3 - ', c * 3)
    print("'hi' + c[0] - ", 'hi' + str(c[0]))
    
    # c + d -  (1, 2, 3, 4, 10, 100, 'Pen', 'Cap', 'Plate')
    # c * 3 -  (1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4)
    # 'hi' + c[0] -  hi1

    ํŠœํ”Œ์„ ์—ฐ์‚ฐํ•˜๋ฉด ํ•˜๋‚˜์˜ ํŠœํ”Œ๋กœ ํ•ฉ์ณ์ง„๋‹ค.

     

     

    ํŠœํ”Œ ํ•จ์ˆ˜

    a = (5, 2, 3, 1, 4)
    
    print('a - ', a.index(5))
    print('a - ', a.count(4))

    ํŠœํ”Œ์€ ์ˆ˜์ •๊ณผ ์‚ญ์ œ๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ•จ์ˆ˜๊ฐ€ ๋ณ„๋กœ ์—†๋‹ค.

     

     

     

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

    ์ˆœ์„œX, ์ค‘๋ณตX, ์ˆ˜์ •O, ์‚ญ์ œO

     

    ์„ ์–ธ

    a = {'name': 'Kim', 'phone': '01012345678', 'birth': '870124'}
    b = {0: 'Hello python!'}
    c = {'arr': [1, 2, 3, 4]}

    ๋”•์…”๋„ˆ๋ฆฌ๋Š” {๊ด„ํ˜ธ} ์•ˆ์— key-value ์Œ์„ ๊ฐ–๋Š”๋‹ค. ์ˆœ์„œ๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ค‘๋ณต์ €์žฅ์„ ํ•  ์ˆ˜ ์—†๋‹ค. key๋Š” ์œ ์ผํ•ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ค‘๋ณต๋  ์ˆ˜ ์—†์ง€๋งŒ value๋Š” ์ค‘๋ณต์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐํƒ€์ž…์„ ๋‹ด์„ ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋ฐฐ์—ด๋„ ์ €์žฅ ๊ฐ€๋Šฅํ•˜๋‹ค. ํ‚ค๊ฐ’์€ ์ˆซ์ž๋กœ ์ž˜ ์“ฐ์ด์ง€ ์•Š๊ณ  ์˜๋ฏธ์žˆ๋Š” ๋‹จ์–ด๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

     

     

    ์ถœ๋ ฅ

    print('b - ', b[0])
    print('b - ', b.get(0))
    print('c - ', c['arr'])
    print('c - ', c['arr'][3])
    print('c - ', c.get('arr'))

    ๋”•์…”๋„ˆ๋ฆฌ ์š”์†Œ๋ฅผ ์กฐํšŒํ•  ๋• ๋ณดํ†ต get() ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒŒ ์ข‹๋‹ค. b[0]์œผ๋กœ ์กฐํšŒํ•  ๊ฒฝ์šฐ ํ•ด๋‹น ๊ฐ’์ด ์—†๋‹ค๋ฉด error๋ฅผ ๋„์šฐ์ง€๋งŒ, get()๋ฉ”์†Œ๋“œ๋Š” ํ•ด๋‹น ๊ฐ’์ด ์—†์–ด๋„ ์—๋Ÿฌ์—†์ด none์„ ํ‘œ์‹œํ•œ๋‹ค. c['arr']์€ ๋ฆฌ์ŠคํŠธ ๋ฐธ๋ฅ˜๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

     

     

    ๋”•์…”๋„ˆ๋ฆฌ ์ถ”๊ฐ€

    a['address'] = 'seoul'
    a['rank'] = [1, 2, 3]

    ๋”•์…”๋„ˆ๋ฆฌ์— ์ƒˆ๋กœ์šด key์™€ value๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค.

     

     

    dict_keys, dict_values, dict_items

    print('a - ', a.keys())
    # a -  dict_keys(['name', 'phone', 'birth', 'address', 'rank'])
    
    print('a - ', list(a.keys()))
    # a -  ['name', 'phone', 'birth', 'address', 'rank']

    a์—์„œ ํ‚ค๊ฐ’๋งŒ ๋ฝ‘์•„๋ณด๋ฉด ๋ฆฌ์ŠคํŠธ์ฒ˜๋Ÿผ ๋ณด์ด๋Š” ๊ฑธ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๊ณ  a.keys()[0] ์ฒ˜๋Ÿผ ์ธ๋ฑ์Šค์— ์ ‘๊ทผํ•  ์ˆ˜๋Š” ์—†๋‹ค. ๋”•์…”๋„ˆ๋ฆฌ๋Š” ์ˆœ์„œ๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋ฆฌ์ŠคํŠธ๋กœ ํ˜•๋ณ€ํ™˜์„ ํ•ด์•ผ ์ธ๋ฑ์‹ฑ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.

     

    print('a - ', a.values())
    # a -  dict_values(['Kim', '01012345678', '870124', 'seoul', [1, 2, 3]])
    
    print('a - ', list(a.values()))
    # a -  ['Kim', '01012345678', '870124', 'seoul', [1, 2, 3]]

    ๋ฐธ๋ฅ˜๊ฐ’๋งŒ ๋ฝ‘์•„๋ณผ ๋•Œ๋„ ๋ฆฌ์ŠคํŠธ๋กœ ํ˜•๋ณ€ํ™˜์„ ํ•ด์•ผ ์ธ๋ฑ์‹ฑ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.

     

    print('a - ', a.items())
    # a -  dict_items([('name', 'Kim'), ('phone', '01012345678'),
    # ('birth', '870124'), ('address', 'seoul'), ('rank', [1, 2, 3])])
    
    print('a - ', list(a.items()))
    # a -  [('name', 'Kim'), ('phone', '01012345678'), ('birth', '870124'),
    # ('address', 'seoul'), ('rank', [1, 2, 3])]

    ์•„์ดํ…œ์€ ํ‚ค-๋ฐธ๋ฅ˜ ์Œ์„ ๋œปํ•œ๋‹ค. item()ํ•จ์ˆ˜๋Š” ๋”•์…”๋„ˆ๋ฆฌ ์š”์†Œ๋ฅผ key-value pair ํ˜•ํƒœ๋กœ ๊ฐ€์ ธ์˜จ๋‹ค. ์•„์ดํ…œ์„ ๋ฆฌ์ŠคํŠธ๋กœ ํ˜•๋ณ€ํ™˜ ํ•˜๋ฉด ๋ฆฌ์ŠคํŠธ ์•ˆ์— ํŠœํ”Œ์ด ๋“ค์–ด๊ฐ„ ํ˜•ํƒœ๋กœ ๋ฐ˜ํ™˜๋œ๋‹ค.

     

    print('a - ', 'name' in a)

    name์ด๋ผ๋Š” ํ‚ค๊ฐ€ ๋ณ€์ˆ˜ a์— ์žˆ๋Š”์ง€ ๋ฌผ์–ด๋ณผ ์ˆ˜ ์žˆ๋‹ค.

     

     

     

    ์ง‘ํ•ฉ (Set)

    ์ˆœ์„œX, ์ค‘๋ณตX

     

    ์„ ์–ธ

    a = set()
    b = set([1, 2, 3, 4])
    c = set([1, 4, 5, 6])
    d = set([1, 2, 'Pen', 'Cap', 'Plate'])

    set์ด๋ผ๋Š” ๋ฉ”์†Œ๋“œ๋กœ ์„ ์–ธํ•œ๋‹ค. ์ด ์•ˆ์— ๋ฆฌ์ŠคํŠธ ํ˜•ํƒœ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ๋Š”๋‹ค. ์…‹์€ ์ฃผ๋กœ ํ˜•๋ณ€ํ™˜ํ•ด์„œ ์‚ฌ์šฉํ•œ๋‹ค.

     

     

    ์ง‘ํ•ฉ ์ž๋ฃŒํ˜•

    s1 = set([1, 2, 3, 4, 5, 6])
    s2 = set([4, 5, 6, 7, 8, 9])
    print('l - ', s1 & s2)
    print('l - ', s1.intersection(s2))
    
    # l -  {4, 5, 6}

    ๊ต์ง‘ํ•ฉ์„ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค.

     

    print('l - ', s1 | s2)
    print('l - ', s1.union(s2))
    
    # l -  {1, 2, 3, 4, 5, 6, 7, 8, 9}

    ํ•ฉ์ง‘ํ•ฉ๋„ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค. ์…‹์€ ์ค‘๋ณต์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ค‘๋ณต๋˜๋Š” ์›์†Œ๋Š” ์ œ๊ฑฐ๋œ๋‹ค.

     

    print('l - ', s1 - s2)
    print('l - ', s1.difference(s2))
    
    # l -  {1, 2, 3}

    ์ฐจ์ง‘ํ•ฉ์„ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค. s1์—์„œ ๊ฒน์น˜๋Š” ํ•ฉ์ง‘ํ•ฉ์„ ๋บ€ ๋‚˜๋จธ์ง€๊ฐ€ ๋ฐ˜ํ™˜๋œ๋‹ค.

     

     

    ์ถ”๊ฐ€ & ์ œ๊ฑฐ

    s1 = set([1, 2, 3, 4])
    s1.add(5)
    print(s1)
    
    # {1, 2, 3, 4, 5}
    
    s1.remove(2)
    print(s1)
    
    # {1, 3, 4, 5}

    add()์™€ remove()ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

     

     

     

    ๐Ÿ˜œ NEXT : ํŒŒ์ด์ฌ ์กฐ๊ฑด๋ฌธ๊ณผ ๋ฐ˜๋ณต๋ฌธ ๊ณต๋ถ€ํ•˜๊ธฐ

    ๋ฐ˜์‘ํ˜•

    ๋Œ“๊ธ€

๊ฐœ๋ฐœ๊ณต๋ถ€