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

+ Recent posts