티스토리 뷰

Language/Python

python set, dict를 for로 출력

KyeongRok Kim 2016. 9. 17. 15:32

 

python set, dict를 for로 출력
 
Python에서 셋(set)은 set_a = {} 이렇게 사용 합니다. 마치 dictionary를 사용하는 것과 비슷합니다. dictionary역시 key, value로 값을 저장 하기 때문에 key가 중복 되어서는 안됩니다. 그래서 일종에 set이라고 할 수 있습니다.
set은 중복을 허용하지 않습니다. 
set_a = {1, 2, 3, 3}
print(set_a)

결과

{1, 2, 3}

 

결과 해석

set_a = {1, 2, 3, 3}

위와 같이 3을 2개 넣었지만 결과에는 3은 한번만 나왔습니다.

 

중복된 값을 넣었을때 set의 작동

set_a = {1, 2, 3, 3}
print(set_a)

set_a.add(4)
print(set_a)

set_a.add(4)
print(set_a)
결과
{1, 2, 3}
{1, 2, 3, 4}
{1, 2, 3, 4}
결과 해석
set에 새로운 숫자인 4를 넣으면 잘 들어갑니다. 하지만 한번 더 4를 넣으려고 하면 중복을 허용하지 않기 때문에 한번만 들어가게 됩니다.

 

Set에 dict가 들어 가는지?

결론은 list와 다르게 set에는 dict가 안들어갑니다.

l1 = [{'hello':'world'}]
print(set(l1))

결과

TypeError: unhashable type: 'dict'

 

dict가 들어있는 list를 set으로 바꾸려고 하면 에러가 납니다.

 

s1 = {{'hello':'world'}}
print(s1)

결과

TypeError: unhashable type: 'dict'

마찬가지로 set에 dict를 넣으려고 해도 위와 같은 에러가 납니다.

 

Set은 어디에 쓰는지?

중복을 허용하지 않거나 중복을 제거해야 하는 경우 set에 넣으면 중복되는 문제가 없어집니다. 다만 중복되는 값들이 사라진다는 것을 우리가 알고 사용 해야 하겠습니다.
 
#set 선언
set_a = {1, 2, 3}

#dict 선언
dict_a = {'list_a':[], 'list_b':[]}

#set안에 key을 each돌면서 출력
for key in set_a:
    print (key)


#dict안에 item을 each돌면서 key를 출력
for item in dict_a:
    print(item)


#value를 출력
for value in dict_a.values():
    print(value)


#item을 출력
for item in dict_a.items():
    print(item)

 

result

 

 

728x90
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함