-
ํ์ด์ฌ ๊ธฐ์ด 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 : ํ์ด์ฌ ์กฐ๊ฑด๋ฌธ๊ณผ ๋ฐ๋ณต๋ฌธ ๊ณต๋ถํ๊ธฐ
๋ฐ์ํ'PYTHON' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ์ด์ฌ ๊ธฐ์ด 6. ํด๋์ค์ ์์ (0) 2020.08.31 ํ์ด์ฌ ๊ธฐ์ด 5. ํจ์์ ๋๋ค์ (0) 2020.08.30 ํ์ด์ฌ ๊ธฐ์ด 4. ์กฐ๊ฑด๋ฌธ๊ณผ ๋ฐ๋ณต๋ฌธ (0) 2020.08.29 ํ์ด์ฌ ๊ธฐ์ด 2. ์ซ์ํ๊ณผ ๋ฌธ์ํ ๋ฐ์ดํฐํ์ (0) 2020.08.26 ํ์ด์ฌ ๊ธฐ์ด 1. ๋ฌธ์์ด ์ถ๋ ฅ๊ณผ ์ต์ ์ฌ์ฉ (0) 2020.08.24