※ 딕셔너리

key : value 쌍의 형태가 { }로 둘러쌓인 구조로 이루어져있으며 쉼표로 구분되어 있는 자료형이다.

(key는 불변값, value는 불변과 가변 모두 사용할 수 있다.)

따라서! key값이 중복해서 사용하지 말아야 한다는 것을 유의하자!

dic = {"name" : "V2LLAIN", "height" : "175", "country" : "Korea"}

print(dic["name"])  # V2LLAIN 출력
key value
name V2LLAIN
height 175
country Korea

 

 

 

 

 

※ 딕셔너리에 쌍 추가,삭제하기

§ 딕셔너리 쌍 추가하기

a = {1 : "a"}

a[2] = "b"
a["country"] = "Korea"

print(a)

#-----------------출력----------------#
{1: 'a', 2: 'b', 'country': 'Korea'}

§ 딕셔너리 쌍 삭제하기

a = {1 : "a"}
a[2] = "b"
a["country"] = "Korea"
# {1: 'a', 2: 'b', 'country': 'Korea'}

del a["country"]

print(a)    #출력: {1: 'a', 2: 'b'}

 

 

 

※ 딕셔너리 관련 함수 (keys, values, items, clear, get, in)

§ Key로 이루어진 리스트 만들기 (keys)

list 고유의 append, insert, pop, remove, sort함수를 사용할 수는 없다.

a = {'name': 'pey', 'phone': '0119993323', 'birth': '1118'}

print(a.keys())

print(list(a.keys()))

for i in a.keys():
    print(i)

#-----------------출력----------------#
dict_keys(['name', 'phone', 'birth'])
['name', 'phone', 'birth']
name
phone
birth

 

 

§ Value 리스트 만들기 (values)

a = {'name': 'pey', 'phone': '0119993323', 'birth': '1118'}

print(a.values())

print(list(a.values()))

for i in a.values():
    print(i)

#-----------------출력----------------#
dict_values(['pey', '0119993323', '1118'])
['pey', '0119993323', '1118']
pey
0119993323
1118

 

 

§ Key, Value 쌍 얻기 (items)

a = {'name': 'pey', 'phone': '0119993323', 'birth': '1118'}

print(a.items())

print(list(a.items()))

for i in a.items():
    print(i)

#-----------------출력----------------#
dict_items([('name', 'pey'), ('phone', '0119993323'), ('birth', '1118')])
[('name', 'pey'), ('phone', '0119993323'), ('birth', '1118')]
('name', 'pey')
('phone', '0119993323')
('birth', '1118')

 

 

§ Key : Value 쌍 모두 지우기 (clear)

a = {'name': 'pey', 'phone': '0119993323', 'birth': '1118'}

a.clear()
print(a)    # {} 출력

 

 

§ Key로 Value 얻기 (get)

a = {'name': 'pey', 'phone': '0119993323', 'birth': '1118'}

print(a.get('name'))    # pey 출력

 

 

§ Key가 딕셔너리에 있는지 조사 (in)  -  True, False 반환

a = {'name': 'pey', 'phone': '0119993323', 'birth': '1118'}

print('name' in a)    # True 출력
print('height' in a)  # False 출력  

 

 

 

 

 

 

 

 

 

 

 

※ 집합 (set) 

set 키워드를 사용해 집합에 관련된 것을 쉽게 처리하기 위한 자료형이다.

s1 = set([1,2,3])
s2 = set("Hello")

print(s1)    # {1, 2, 3} 출력
print(s2)    # {'e', 'l', 'H', 'o'}과 같이 출력 (출력값 바뀔 수도 있음)

위에서 보면 print(s2)의 결과가 예상과 달리 나와 의문이었다.

이와 관련해 집합의 2가지 특징이 작용한다.

1. 중복을 허용하지 않는다.
2. 순서가 없다.

리스트나 튜플은 순서가 있기에 indexing을 통한 자료형값을 얻을 수 있다.

하지만 딕셔너리나 set 자료형은 순서가 없어서 indexing으로 값을 얻을 수 없다.

따라서 저장된 값을 indexing으로 접근하려면 리스트나 튜플로 변환 후 가능하다!

 

s = set([1,2,3])
a = list(s)

print(a)    
# {1, 2, 3}와 같은 set형식이 아닌 [1, 2, 3]같은 list형식으로 출력
s = set([1,2,3])
a = list(s)

print(a[2]) # 3출력

 

 

 

 

 

※ 합집합, 교집합, 차집합 구하기  ( |, &, -  )

s1 = set([1, 2, 3, 4, 5, 6])
s2 = set([4, 5, 6, 7, 8, 9])

 

§ 합집합 ( | )

s1 = set([1, 2, 3, 4, 5, 6])
s2 = set([4, 5, 6, 7, 8, 9])

print(s1 & s2)  # {4, 5, 6} 출력

 

§ 교집합 ( & )

s1 = set([1, 2, 3, 4, 5, 6])
s2 = set([4, 5, 6, 7, 8, 9])

print(s1 | s2)  # {1, 2, 3, 4, 5, 6, 7, 8, 9} 출력

 

§ 차집합 ( - )

s1 = set([1, 2, 3, 4, 5, 6])
s2 = set([4, 5, 6, 7, 8, 9])

print(s1 - s2)  # {1, 2, 3} 출력

 

 

 

 

 

 

 

 

※ 딕셔너리 관련 함수 (add, update, remove)

§ 값 1개 추가 (add)

s = set([1, 2, 3])
s.add(4)

print(s)  # {1, 2, 3, 4} 출력

 

§ 값 여러 개 추가 (update)

s = set([1, 2, 3])
s.update([4, 5, 6])

print(s)  # {1, 2, 3, 4, 5, 6} 출력

 

§ 특정값 제거 (remove)

s = set([1, 2, 3])
s.remove(2)

print(s)  # {1, 3} 출력

 

+ Recent posts