본문 바로가기
언어/Python

[유튜브 나도코딩 1분파이썬] 100분완성 강의 요약본 #20강~23강

by 바다의 공간 2024. 5. 7.

[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 설정 및 반환