set
ํ์) ๋ณ์ = {๊ฐ1, ๊ฐ2, ...}
์์ ์๋ ์๋ฃ๊ตฌ์กฐ(์์ธ ์ฌ์ฉ ๋ถ๊ฐ)
์ค๋ณต ํ์ฉ ๋ถ๊ฐ
์์ ๋ถ๊ฐ
์ถ๊ฐ, ์ญ์ ๊ฐ๋ฅ
์งํฉ ๊ฐ๋
์ฌ์ฉ
1. set ์์ฑ
st = {1, 3, 5, 1, 5} # ์ค๋ณต ํ์ฉ ๋ถ๊ฐ
print(st, len(st)) # {1, 3, 5} 3
for + set
for s in st :
print(s)
์์ธ ์ฌ์ฉ ๋ถ๊ฐ
st[0] # TypeError
2. ์ค๋ณต ๋ถ๊ฐ
gender = ['๋จ','์ฌ','์ฌ','๋จ'] # ์ค๋ณต ๊ฐ๋ฅ
print(gender) # ['๋จ', '์ฌ', '์ฌ', '๋จ']
list -> set ๋ณํ
sgender = set(gender)
print(sgender) # {'๋จ', '์ฌ'}
set -> list ๋ณํ
gender2 = list(sgender)
print(gender2) # ['๋จ', '์ฌ']
3. ์งํฉ๊ด๋ จ
set1 = {1,2,3,4,5}
set2 = {3, 5}
type(set1) # set
set1.union(set2) # ํฉ์งํฉ : {1, 2, 3, 4, 5}
set1.difference(set2) # ์ฐจ์งํฉ : {1, 2, 4}
set1.intersection(set2) # ๊ต์งํฉ : {3, 5}
4. ์ถ๊ฐ, ์ญ์ ๊ฐ๋ฅ
set2.add(7) # ์์ ์ถ๊ฐ
print(set2) # {3, 5, 7}
set2.discard(7) # ์์ ์ญ์
print(set2) # {3, 5}
dict
์ฌ์ ํ ์๋ฃ๊ตฌ์กฐ
set๊ณผ ์ ์ฌํจ
ํ์) ๋ณ์ = {key1:value, key2:value, ...}
์์ : ํค:๊ฐ ์์ผ๋ก ๊ตฌ์ฑ
key๋ฅผ ์์ธ ์ฌ์ฉ
key ์ด์ฉ : ์์ , ์ญ์ , ์ถ๊ฐ
key ์ค๋ณต ๋ถ๊ฐ, ์์ ์์
1. dict ์์ฑ
person = {'name':'ํ๊ธธ๋', 'age':35, 'addr' : '์์ธ์'}
print(type(person), len(person)) # <class 'dict'> 3
key -> value
person['name'] # 'ํ๊ธธ๋'
2. key -> ์์ , ์ญ์ , ์ถ๊ฐ, ๊ฒ์
person['age'] = 45 # ์์
print(person) # {'name': 'ํ๊ธธ๋', 'age': 45, 'addr': '์์ธ์'}
del person['addr'] # ์ญ์
print(person) # {'name': 'ํ๊ธธ๋', 'age': 45}
person['pay'] = 350 # ์ถ๊ฐ
print(person) # {'name': 'ํ๊ธธ๋', 'age': 45, 'pay': 350}
key ๊ฒ์
if 'age' in person :
print('age ํค ์์' )
else :
print('age ํค ์์')
3. ๋จ์ด ๋น๋์
charset = ['pay', 'name', 'pay', 'name', 'age'] # list
wc = {} # ๋นset
for ch in charset : # 'pay'
wc[ch] = wc.get(ch, 0) + 1 # {'pay':2, 'name':1}
* get(key, ๊ธฐ๋ณธ๊ฐ) : ํด๋น ์ฌ์ ์ key๊ฐ ์์ผ๋ฉด value๋ฅผ ๋ฐํํ๊ณ , ์์ผ๋ฉด ๊ธฐ๋ณธ๊ฐ์ด ์ํ๋๋ค.
print(wc) # {'pay': 2, 'name': 2, 'age': 1}
wc.get('pay') + 1 # 2 + 1 -> 3
4. for + dict
for key in person.keys() : # key ๋๊น
print(key, end = ' ') # name age addr
print(person[key]) # ํ๊ธธ๋ 35 ์์ธ์
for value in person.values() : # value ๋๊น
print(value, end = ' ')
for items in person.items() : # key + value
print(items)
('name', 'ํ๊ธธ๋') -> tuple ๋ฐํ
('age', 35)
('addr', '์์ธ์')
5. {key : [value1, value2]}
์) {'์ฌ๋ฒ' : [๊ธ์ฌ, ์๋น]}
emp = {'1001' : [250,50], '1002':[200,40], '1003':[300,80]}
type(emp) # dict
๊ธ์ฌ๊ฐ 250 ์ด์์ด๋ฉด ์ฌ๋ฒ ์ถ๋ ฅ & ์๋น ํฉ๊ณ
su_tot = 0 # ์๋น ํฉ๊ณ
for eno, pay_su in emp.items() : # key + value
if pay_su[0] >= 250 :
print(eno) # ์ฌ๋ฒ์ถ๋ ฅ
su_tot += pay_su[1] # ์๋น ๋์
print('์๋น์ ํฉ๊ณ : %d'%su_tot) # ์๋น์ ํฉ๊ณ : 130
๊ธ์ฌ + ๋ณด๋์ค
pay = {'ํ๊ธธ๋':200, '์ด์์ ':250, '์ ๊ด์':200} # dict
bonus = {'ํ๊ธธ๋':50, '์ด์์ ':80, '์ ๊ด์':30} # dict
list ๋ดํฌ
pays = [ pay[key] + bonus[key] for key in pay.keys()]
print(pays) # [250, 330, 230]
avg = sum(pays) / len(pays)
print('๊ธ์ฌ ํ๊ท : ', avg) # ๊ธ์ฌ ํ๊ท : 270.0
6. ๋๋ฏธ๋ณ์์ ์ธ์ฝ๋ฉ
1) ํ์กํ ๋๋ฏธ๋ณ์ ๋ณํ
map_data = {'AB':1, 'A':0, 'B':0, 'O':0}
datas = ['A', 'B', 'AB', 'O', 'A']
list ๋ดํฌ
dummy = [map_data[data] for data in datas] # [์คํ๋ฌธ for๋ฌธ]
print(dummy) # [0, 0, 1, 0, 0]
2) label ์ธ์ฝ๋ฉ(2์ง์)
label_map = {'thin': [1,0,0], 'normal' : [0,1,0], 'fat' : [0,0,1] }
datas = ['normal', 'fat', 'thin', 'normal', 'fat'] # list
list ๋ดํฌ
label_encoding = [label_map[data] for data in datas] # ์ค์ฒฉ list
print(label_encoding)
# [[0, 1, 0], [0, 0, 1], [1, 0, 0], [0, 1, 0], [0, 0, 1]]
len(label_encoding) # 5
'๋ฐ์ดํฐ๋ถ์๊ฐ ๊ณผ์ > Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
DAY37. Python ๋ฌธ์์ด ์ ์ฒ๋ฆฌ, ์ธ๋ฏธํ๋ก์ ํธ ๋ฐํ (0) | 2021.11.05 |
---|---|
DAY36. Python ์ ๊ทํํ์ (0) | 2021.11.04 |
DAY34. Python Basic ์๋ฃ๊ตฌ์กฐ (1)list, tuple (0) | 2021.11.02 |
DAY33. Python Basic ์กฐ๊ฑด๋ฌธ, ๋ฐ๋ณต๋ฌธ (0) | 2021.11.01 |
DAY32. Python Basic ๋ฌธ์์ด, ์ด์ค์ผ์ดํ ๋ฌธ์ (0) | 2021.10.29 |