[타임어택] 220923 #1
2022. 9. 26. 18:46ㆍ스파르타코딩클럽[AI트랙 3기]/타임어택(쪽지시험 등)

▶a = 전역변수 , b = 지역변수
실행 안됨.
변수값 미지정.

▶mutable : list, dict, set
immutable : int, float, str, tuple
변수를 할당해주고 값을 바꿨을때 결과가 달라짐. 외울필요 없음.

1)numbers에 1부터 10000까지 할당하기
#case 1 : 빈리스트 + for문 돌리기
numbers = []
for i in (1,10001)
numbers.append(i)
#case 2 : range 쓰기
numbers = range(1,10001) #> list(range(1,10001)) list로 안감싸면 range 타입임.
#case 3 : list축약식
numbers = [x for x in range(1,10001)]
2)짝수 번호 뽑아내기
▶내가 쓴 오답
def get_even_numbers(numbers):
result = []
result.append(list(filter(lambda x: x%2 == 0 , numbers)))
return result
▶정답 코드
#case 1 : list 축약식으로 풀기
def get_even_numbers(numbers):
result = [x for x in numbers if x%2 == 0]
return result
#case 2 : filter 활용하기
def get_even_numbers(numbers):
result = list(filter(lmabda x: x%2 ==0,numbers)) #filter를 쓰기전 list로 감싸주기. 필터는 인자를 두개받음(람다, 리스트)
return result
3)3의 배수이며 15의 배수가 아닌 수*10 some_numbers에 할당
▶내가 쓴 오답
def get_some_numbers(numbers):
result = []
result.append(list(filter(lambda x : x%3 == 0 and x%15 != 0, numbers)))
return result
▶정답 코드
#case 1 : list 축약식으로 풀기
def get_some_numbers(numbers):
result = [x*10 for x in numbers if x%3 == 0 and x%15 != 0] #x기본적인 list 축약식의 구조는 x for x in numbers. 바꿔주고 싶으면 맨 앞의 x를 바꿔주기.
return result
#case 2 : filter,map 활용하기 / 2단계로 나누기 1)3의배수이자 15의 배수가 아닌 숫자 골라내기 2)결과물에 10곱하기
def get_even_numbers(numbers):
#1단계 : 3의배수이자 15의 배수가 아닌 숫자 골라내기
result = list(filter(lmabda x: x%3 == 0 and x%15 != 0 ,numbers)) #filter를 쓰기전 list로 감싸주기. 필터는 인자를 두개받음(람다, 리스트)
#2단계 : 결과에 10 곱해주기
result = list(map(lambda x: x*10, result)) #result 위에 걸러 준것을 그대로 가져오기. map함수도 쓰는 방식 filter와 동일
return result

▶내가 쓴 오답
def get_filter_user(users):
retrun users.sort(lambda x:x[5]+x[7]+x[9]x[11])
▶정답 코드
#1 정렬 먼저하기
users.sort(key=lambda x : sum([x["math_score"],x["science_score"],x["english_score"],x["social_score"]]))
#sort에서 key의 역할은 key를 중심으로 정렬하겠다는 것/lambda로 에는 딕셔너리가 하나씩 담김.
#sum([]) #sum함수는 list의 숫자들을 인자로 받음.
#lambda x는 각 딕셔너리를 뜻함.
#이렇게하면 점수가 낮은 사람이 위에서 부터 아래로 내려옴. sort의 reverse를 마지막에 해줌.
#reverse의 기본값은 False인데 이것을 True로 바꿔주면 내림차순으로 바뀜.
users.sort(key=lambda x : sum([x["math_score"],x["science_score"],x["english_score"],x["social_score"]]),reverse=True)
+)sort dict pprint는 기본적으로 key를 기준으로 abc순으로 자동 정렬함. 딕셔너리 정렬하지 않도록 dict=Fasle 써준다.
'스파르타코딩클럽[AI트랙 3기] > 타임어택(쪽지시험 등)' 카테고리의 다른 글
| [쪽지시험] 221025 장고 rfw #1 (0) | 2022.10.25 |
|---|---|
| [장고]타임어택 221014 (0) | 2022.10.17 |
| [쪽지시험] 220928 #3 (0) | 2022.09.28 |
| [쪽지시험] 220927 #2 (0) | 2022.09.28 |
| [쪽지시험] 220926 #1 (0) | 2022.09.26 |