[20강. 세트 1]
세트의 특징
리스트 튜플과 같이 여러개의 데이터를 저장할 수 있다.
단 순서를 보장하지않고, 중복을 허용하지 않습니다.
세트의 형태는 세트 = {값1, 값2, ...}로 구성됩니다.
set1 = {'돈가스','보쌈','제육덮밥'}
set2 = {'짬뽕','초밥'.'제육덮밥'}
이렇게 있는 문자열의 공통값을 추출(교집합) 하려면 intersection이라는 메소드가필요합니다.
print(set1.intersection(set2))을 실행하게 되면 #제육덮밥 라고 출력되는겁니다.
이렇게 있는 문자열의 모든값을 추출(합집합) 하려면 union이라는 메소드가필요합니다.
print(set1.union(set2))을 실행하게 되면 #{'돈가스','보쌈','짬뽕','초밥','제육덮밥'} 라고 출력되는겁니다.
단 세트는 순서를 보장하지 않기떄문에 출력값은 다를 수 있습니다. 그리고 중복값은 허용하지않기에 하나씩만 들어갑니다.
이렇게 있는 문자열의 set1에만 있는 것들을 추출(차집합) 하려면 difference이라는 메소드가필요합니다.
print(set1.defference(set2))을 실행하게 되면 #{'돈가스','보쌈'} 라고 출력되는겁니다.
[21강. 세트 2]
앞서 적어놨듯 세트는 순서가보장되지 않으므로 인덱스를 통해서는 접근할 수 없습니다.
그리고,
set1 = {'돈가스','보쌈','제육덮밥'}
set2 = {'짬뽕','초밥'.'제육덮밥'}
이렇게 있는 문자열의 값에 추가 하려면 add 라는 메소드가필요합니다.
set1.add('닭갈비')
print(set1)을 실행하게되면 # {'돈가스','보쌈','제육덮밥','닭갈비'}라고 출력되는 겁니다.
반대로 지울수도있습니다.
이렇게 있는 문자열의 set1에만 있는 것들중 하나만 제거 하려면 remove이라는 메소드가필요합니다.
set1.remove('제육덮밥')
print(set1)을 실행하게 되면 #{'돈가스','보쌈'} 라고 출력되는겁니다.
모든 값을 지울때는 clear 이라는 메소드가 필요합니다.
set1.clear()
print(set1)을 실행하게 되면 #set() 라고 출력되는겁니다.
이때 clear는 값을 모두 지워주게 되는것이고
세트 자체를 지울때는 del이라는 메소드가 필요합니다.
del set1
print(set1)을 실행하게되면 #NameError 라고 에러가 납니다.
메소드 | 의미 |
copy() | 세트복사 |
discard() | 주어진 값 삭제(해당 값이 없어도 에러발생x) |
isdisjoint() | 두 세트에 겹치는 값이 없는지의 여부 |
issubset() | 다른 세트의 부분집합인지 여부 |
issuperset() | 다른 세트의 상위집합인지 여부 |
update() | 다른 세트의 값들을 더함 |
[22강. 딕셔너리 1]
딕셔너리는 키와 벨류 라는것들로 이루어져있습니다.
dic={key:value1, key2:value2, ...}
예를들어
key | value |
이름 | 나귀욤 |
나이 | 7세 |
키 | 120cm |
몸무게 | 23kg |
각각 key와 value를 한쌍으로 묶을 수 있습니다.
이것을 코드로 표현한다면
person = {'이름':'나귀욤', '나이':'7세', '키':'120', '몸무게':'23'}
으로 할 수 있습니다 그런데 가독성이 좋지 않다고 판단되면 아래처럼 줄바꿈을 해서 변경할 수 있습니다.
person = {
'이름':'나귀욤',
'나이':'7세',
'키':'120',
'몸무게':'23'
}
여기서 이름 나이 키 몸무게는 문자열이지만 숫자 등 다양한 형태로도 키값을 설정할 수 있다.
value에서도 마찬가지로 숫자 문자 불리안 리스트나 튜플로도 사용가능합니다.
print(person['이름'])를 실행하면 #나귀욤 이 출력됩니다.
print(person['나이']) 를 실행하면 #7이 출력됩니다
[23강. 딕셔너리 2]
딕셔너리 사용방법
person = {'이름':'나귀욤', '나이':'7세', '키':'120', '몸무게':'23'}
Q1. key에 해당하는 value 확인하려면?
A1. print(person['이름'] # 나귀욤
A2. print(person['나이'] # 7
A3. print(person['별명'] #에러발생
-> 별명이라는 키워드가 없기때문에 에러가 발생하게 됩니다.
이때는 get이라는 메소드를 이용하면 똑같이 '별명'이라는 key에 접근을 시도하는데 이때는 key값이 없어도 에러는 발생하지 않고 그냥 None이 출력됩니다. #에러는 아니라는 뜻
Q2. 새로운 데이터를 추가하려면?
person['최종학력']='유치원' -->대괄호속에 새로운 key를 넣고 value를 정의해주면 됩니다.
Q3. 특정 key의 value를 변경하고 싶다면?
person['키'] = 130
즉! 있는 없는 key를 넣으면 값 추가, 있는걸 넣으면 값 수정이 됩니다.
Q4. 하나가 아닌 여러 key의 value를 변경하려면?
update 라는메소드를 이용하면 됩니다.
person.update({'키':130, '몸무게':26}) -->괄호속에는 딕셔너리 형태로 바꾸려는 key와 value를 정의해주면 됩니다.
Q5. 특정 key의 value를 삭제하려면?
pop 라는메소드를 이용하면 됩니다.
person.pop('몸무게') -->지우려는 key값을 넣어주면 삭제됩니다.
Q6. 모든 데이터를 삭제하려면?
clear 라는메소드를 이용하면 됩니다.
Q7. 딕셔너리안에 어떤 key들이 들어있는지 확인하려면?
keys 라는메소드를 이용하면 됩니다.
print(person.keys()) 를 입력하면 키만 출력됩니다.
Q8. 딕셔너리안에 어떤 value들이 들어있는지 확인하려면?
values 라는메소드를 이용하면 됩니다.
print(person.values()) 를 입력하면 값만 출력됩니다.
Q9. 딕셔너리안에 key:value를 한 쌍으로 모두 출력하는 방법은?
items 라는메소드를 이용하면 됩니다.
print(person.itemes() 를 입력하면 값만 출력됩니다. -->key와 value가 ','로 구분된 모든 데이터를 확인할 수 있습니다.
메소드 | 의미 |
fromkeys() | 제공된 keys를 통해 새로운 딕셔너리 생성 및 반환 |
popitem() | 마지막으로 추가된 데이터 삭제 |
setdefault() | key에 해당하는 value반환 key가 없다면 새로 만들고 default value 설정 및 반환 |
'언어 > Python' 카테고리의 다른 글
[유튜브 나도코딩 1분파이썬] 100분완성 강의 요약본 #42강~46강 (1) | 2024.05.11 |
---|---|
[Python] 문법 ~~~~32~~41 (0) | 2024.05.10 |
[유튜브 나도코딩 1분파이썬] 100분완성 강의 요약본 #24강~31강 (0) | 2024.05.09 |
[유튜브 나도코딩 1분파이썬] 100분완성 강의 요약본 #12강~19강 (0) | 2024.05.06 |
[유튜브 나도코딩 1분파이썬] 100분완성 강의 요약본 #3강~11강 (0) | 2024.05.06 |