1. 프로그래머스 python 코딩테스트 입문
Level 0. 대문자와 소문자
문자열 my_string이 매개변수로 주어질 때, 대문자는 소문자로 소문자는 대문자로 변환한 문자열을 return하도록 solution 함수를 완성해주세요.
1. 정답 확인
1. '구분자'.JOIN(리스트) 구문 -- 리스트가 문자일때만 가능/ 숫자이면 쓸 수 없음.
def solution(my_string):
return ''.join([i.lower() if i.isupper() else i.upper() for i in my_string])
isupper()
: 대문자인지 확인 (True/False)
islower()
: 소문자인지 확인 (T/F)
''.JOIN(리스트)
: 따로 구분자 없이 ''이렇게 바로 리스트한걸 JOIN한다는 의미. 리스트를 하나의 문자열로!
(리스트) 안에 [리스트 컴프리헨션]
을 넣은 구조
-[값1 if 조건 else 값2 for i in 리스트]
: [ i.lower() if i.isupper() else i.upper() for i in my_string ]
2. 사실 이 경우는 swapcase()
함수를 쓰면 더 편함.
def solution(my_string):
return my_string.swapcase()
2. 프로그래머스 python 코딩테스트 입문
Level 0. 짝수 홀수 개수
정수가 담긴 리스트 num_list가 주어질 때, num_list의 원소 중 짝수와 홀수의 개수를 담은 배열을 return 하도록 solution 함수를 완성해보세요.
2. 정답 확인
count()함수는 쓸 수 없음.
i for i in 리스트 if 조건
구문
def solution(num_list):
return[sum(1 for i in num_list if i % 2 == 0), sum(1 for i in num_list if i % 2 == 1)]
count()
: 리스트 안에서 특정값이 몇번 나오는지 확인하는 함수.리스트 컴프리헨션 정리 (반드시 for 문이 있어야함.)
[값 for 변수 in 리스트]
기본 형식[i for i in 리스트]
: 리스트에서 뽑은 값을 하나씩 꺼내서(i뒤) i(i앞)형태로 리스트를 만들어라.i
: 변경 가능, 리스트에 i를 어떻게 추가할지 정하는 변수.[i *2 for i in 리스트]
: 리스틍에 있는 값을 하나씩 꺼내서(i) 그 값에2를 곱한 결과 (i2)를 리스트로 만들어라.[ i(값) for i(변수) in 리스트 if 조건]
특정값만 필터링
(앞에 있는 i)
는 (ix2)
등으로 변경 가능.
[참일때 값1 if 조건 else 거짓일때 값2 for 변수 in 리스트]
모든값 필터링
if 조건문 뒤에 또 다시 for 가 오면 틀림
리스트 컴프리헨션 [ 리스트 ]
대괄호를 사용.
리스트 생성 , 메모리에 모든 값 저장, 즉시 사용 가능.
cf) 제너레이터 컴프리헨션 (리스트)
소괄호 사용.
메모리 절약 (모든 값을 저장하지 않고, 필요할때 계산)
값이 바로 보이지 앟아서 list(), for문, next()를 사용해야함.