dictionary
dictionary는 키와 값을 보관하는 컬렉션입니다.
영어사전에 단어와 뜻이 있는 것처럼 dictonary에는 키와 값이 있습니다.
dictionary는 중괄호에 아이템을 열거하는데 키와 값은 콜론으로 구분합니다.
변수 = {키:값, 키:값, 키:값, …}
다음은 정수를 키, 문자열을 값으로 하는 사전을 표현한 것입니다.
[In]
num_dic = {1:"One",2:"Two",3:"Three" }
print(num_dic)
[Out]
{1: 'One', 2: 'Two', 3: 'Three'}
dictionary에 인덱스 연산에 키를 넣으면 값을 참조할 수 있습니다.
[In]
print(num_dic[1])
[Out]
One
dictionary에 보관할 때도 인덱스에 키를 넣고 값을 대입 연산을 이용하여 넣습니다.
[In]
num_dic[4] = "Four"
print(num_dic)
[Out]
{1: 'One', 2: 'Two', 3: 'Three', 4: 'Four'}
dictionary에 아이템을 삭제할 때는 del을 이용합니다.
[In]
del num_dic[2]
print(num_dic)
[Out]
{1: 'One', 3: 'Three', 4: 'Four'}
키를 이용하여 멤버쉽 연산(in)을 사용할 수 있습니다.
[In]
number = int(input("번호:"))
if number in num_dic:
print(num_dic[number])
else:
print(number," 없습니다.")
[Out 1]
번호:5
5 없습니다.
[Out 1]
번호:2
Two
for 문의 in 뒤에 dictionary 변수가 오면 키를 반복 참조할 수 있습니다.
[In]
for elem in num_dic:
print(elem,end=' ')
[Out]
1 3 4
키와 값을 모두 확인하려면 dictionary의 items 메서드를 이용하세요.
[In]
for item in num_dic.items():
print(item)
[Out]
(1, 'One')
(3, 'Three')
(4, 'Four')
다음처럼 사용할 수도 있습니다.
[In]
for key,value in num_dic.items():
print(key,":",value)
[Out]
1 : One
3 : Three
4 : Four
dictionary의 키와 값은 어떠한 형식도 올 수 있습니다.
다음은 키로 문자열 값으로 리스트인 dictionary입니다.
[In]
group_dic = {}
group_dic["kor"] = ["하나","둘","셋"]
group_dic["eng"] = ["One","Two","Three"]
print(group_dic)
[Out]
{'kor': ['하나', '둘', '셋'], 'eng': ['One', 'Two', 'Three']}
set
set은 단어 그대로 집합입니다.
set도 중괄호로 표현합니다. 그리고 set은 같은 원소를 보관하지 않습니다.
[In]
s = {1,3,4,5,3,2,4,5}
print(s)
[Out]
{1, 2, 3, 4, 5}
set도 멤버쉽 연산 in을 사용할 수 있습니다.
[In]
number = int(input("번호:"))
if number in s:
print("있습니다.")
else:
print("없습니다.")
[Out 1]
번호:6
없습니다.
[Out 1]
번호:2
있습니다.
set에 원소를 추가할 때 add 메서드를 사용합니다.
[In]
s.add(6)
print(s)
[Out]
{1, 2, 3, 4, 5, 6}
이미 있는 원소를 보관하라고 해도 변화가 없습니다.
[In]
s.add(4)
print(s)
[Out]
{1, 2, 3, 4, 5, 6}
원소를 제거할 때 remove 메서드를 사용할 수 있어요.
[In]
s.remove(4)
print(s)
[Out]
{1, 2, 3, 5, 6}
없는 원소를 remove 메서드로 삭제를 요청하면 KeyError가 발생합니다.
[In]
s.remove(4)
print(s)
[Out]
KeyError Traceback (most recent call last)
<ipython-input-19-116ead2c6ac6> in <module>()
----> 1 s.remove(4)
2 print(s)
KeyError: 4
discard 메서드를 이용하여 원소를 삭제할 수도 있습니다. remove 메서드와 다르게 없는 원소를 discard 메서드로 삭제 요청을 하면 아무런 일도 발생하지 않습니다.
[In]
s.discard(4)
print(s)
[Out]
{1, 2, 3, 5, 6}
다음은 discard 메서드로 원소 2를 삭제하는 코드입니다.
[In]
s.discard(2)
print(s)
[Out]
{1, 2, 3, 5, 6}
집합은 여러 가지 연산을 제공합니다. 여기에서는 합집합(A∪B), 교집합(A∩B) 차집합(A-B), 대차집합(A∪B – A∩B)을 알아볼게요.
다음은 2의 배수와 3의 배수로 구성한 집합 s1, s2입니다.
[In]
s1 = {x for x in range(2,30,2)}
s2 = {x for x in range(3,30,3)}
print(s1)
print(s2)
[Out]
{2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28}
{3, 6, 9, 12, 15, 18, 21, 24, 27}
합집합은 | 기호나 union 메서드를 사용합니다.
[In]
s3 = s1|s2
print(s3)
s3 = s1.union(s2)
print(s3)
[Out]
{2, 3, 4, 6, 8, 9, 10, 12, 14, 15, 16, 18, 20, 21, 22, 24, 26, 27, 28}
{2, 3, 4, 6, 8, 9, 10, 12, 14, 15, 16, 18, 20, 21, 22, 24, 26, 27, 28}
교집합은 & 기호나 intersection 메서드를 사용합니다.
[In]
s4 = s1 & s2
print(s4)
s4=s1.intersection(s2)
print(s4)
[Out]
{24, 18, 12, 6}
{24, 18, 12, 6}
차집합은 – 기호나 difference 메서드를 사용합니다.
[In]
s5 = s1 - s2
print(s5)
s5 = s1.difference(s2)
print(s5)
[Out]
{2, 4, 8, 10, 14, 16, 20, 22, 26, 28}
{2, 4, 8, 10, 14, 16, 20, 22, 26, 28}
대차집합은 ^ 기호나 symmetric_difference 메서드를 사용합니다.
[In]
s6 = s1 ^ s2
print(s6)
s6 = s1.symmetric_difference(s2)
print(s6)
[Out]
{2, 3, 4, 8, 9, 10, 14, 15, 16, 20, 21, 22, 26, 27, 28}
{2, 3, 4, 8, 9, 10, 14, 15, 16, 20, 21, 22, 26, 27, 28}
'Python > 파이썬 입문' 카테고리의 다른 글
[파이썬 입문] 5. 모듈 – 01) 모듈 개요와 random 모듈 (0) | 2024.05.03 |
---|---|
[파이썬 입문] 4. 함수 – 3) 람다와 콜백 등 (0) | 2024.05.03 |
[파이썬 입문] 4. 함수 – 2) 내장 함수 (0) | 2024.05.03 |
[파이썬 입문] 4. 함수 – 1) 함수 개요 (1) | 2024.05.02 |
[파이썬 입문] 3. 제어문과 컬렉션 – 7) 리스트 컴프리헨션 (0) | 2024.05.02 |
[파이썬 입문] 3. 제어문과 컬렉션 – 6) 리스트 기능2(연산 sort reverse copy index) (0) | 2024.05.02 |
[파이썬 입문] 3. 제어문과 컬렉션 – 5)리스트 기능1 (추가, 병합, 삭제) (0) | 2024.05.02 |
[파이썬 입문] 3. 제어문과 컬렉션 – 4) 튜플과 리스트 맛보기 (0) | 2024.05.02 |