내배캠/TIL
TIL/10/20230324
woongpang
2023. 3. 24. 20:58
728x90
튜플과 집합
튜플
튜플은 리스트와 비슷하지만 불변인 자료형이다.
리스트와 다르게 순서를 바꾸거나 추가할 수 없다.
집합
집합은 리스트를 집합에 넣으면 집합이 만들어진다.
집합의 특징은 중복을 제거해 준다.
집합은 교집합/합집합/차집합도 구할 수 있다.
차집합
리스트 안에 중복되는 값이 있을 수 있은데 사전에 집합화 시켜서 중복되는건 빼고 다른것과 차집합 하는 거 같음
일단을 집합화를 하고 차집합을 해라.
차집합을 하기 위해 리스트가 아닌 집합화로 만든다.
student_a = ['물리2','국어','수학1','음악','화학1','화학2','체육']
student_b = ['물리1','수학1','미술','화학2','체육']
a_set = set(student_a)
b_set = set(student_b)
print(a_set - b_set)
student_a 와 student_b 라는 리스트를 a_set과 b_set 으로 집합을 시켜준 뒤
print에서 a_set - b_set로 중복된걸 없애준다.
f-string
scores = [
{'name':'영수','score':70},
{'name':'영희','score':65},
{'name':'기찬','score':75},
{'name':'희수','score':23},
{'name':'서경','score':99},
{'name':'미주','score':100},
{'name':'병태','score':32}
]
for i in scores:
name = i['name']
score = i['score']
print(name+'의 점수는 '+str(score)+'점입니다.')
# 스코어는 정수이므로 str을 붙여서 문자열로 변경
위에보다 더 간단하게 쓰는 방법
for i in scores:
name = i['name']
score = str(i['score'])
print(f'{name}의 점수는 {score}점입니다')
f-string을 이용하면 간단하게 가능하다.
지금은 변수가 2개라서 별차이가 없어보이지만 추후에는 변수가 무한이 많아질수있으므로
f-string과 친해지면 좋다!
예외처리
에러가 있어도 멈추지않고 다음 코드를 실행하게 하는 방법
for person in people:
try:
if person['age'] > 20:
print(person['name'])
except:
print('에러입니다')
트라이 안에 있는 문장을 실행시키던 중 에러가 있는 경우 멈추지 말고 ‘에러입니다’ 메세지 나오게 하기
except:
print(person['name'],'에러입니다')
에러 메세지 앞에 사람 이름도 나오게 할 수 있다.
서버한테 콜을 한다거나 내잘못이 아니고 서버쪽에 문제가 있을 가능성도
있을 때 이렇게 트라이 익셉트로 잡아주면 큰 무리 없이 돌아갈수 있다.
그러나 남용하게 되면, 무슨 에러가 나는지 모르기에 왠만해선 안쓰는게 좋다
그러나 남용하는 경우 돌아는 가는데 뭔가 이상해지고, 무슨 에러가 나는지 모르기에 왠만해선 안쓰는게 좋다.
한줄의 마법
num = 3
if num % 2 == 0 :
result = '짝수'
else:
result = '홀수'
print(f'{num}은 {result}입니다.')
간단하게 만들기
result = ('짝수' if num %2 == 0 else '홀수')
print(f'{num}은 {result}입니다.')
for문
a_list = [1,3,2,5,1,2]
b_list = []
for a in a_list:
b_list.append(a*2)
print(b_list)
간단하게 만들기
a_list = [1,3,2,5,1,2]
b_list = [a*2 for a in a_list]
print(b_list)
리스트의 원소를 조작할 수 있는 map, filter, lambda
map
def check_aduplt(person):
if person['age'] > 20:
return '성인'
else:
return '청소년'
result = map(check_aduplt, people)
print(list(result))
피플을 하나하나 돌면서 check_aduplt에 넣어라.
그리고 그 결과값을 다시 리스트로 묶었다.
필터
map하고 매우 유사하며 진실인것들만 뽑혀 나온다.
필터는 조금 더 직관적이고 유용하다.
클래스
물체에다가 물체에 관련된 속성들을 넣어두고 컨트롤할 수 있는 함수들을 만들어 붙여주고, 중앙에서는
그 함수만 불러다가 해당 물체를 제어하는 것들을 말한다.
728x90