문제 설명

문자열 배열 strlist가 매개변수로 주어집니다. strlist 각 원소의 길이를 담은 배열을 return 하도록 solution 함수를 완성해주세요.

 

제한사항

  • 1 ≤ strlist 원소의 길이 ≤ 100
  • strlist는 알파벳 소문자, 대문자, 특수문자로 구성되어 있습니다.

 

입출력 예

strlist result
["We", "are", "the", "world!"] [2, 3, 3, 6]
["I", "Love", "Programmers."] [1, 4, 12]

 

내 풀이

def solution(strlist):
	answer = []
	for i in strlist:
		answer.append(len(i))
	return answer

 

회고

  • for문을 돌면서 strlist 배열 요소들의 길이를 answer 배열의 요소로 넣게 된다.
  •  return [ len(i) for i in strlist ]  이거 깔끔해보인다.
  • 리스트 컴프리헨션이라는 게 있다는 걸 자꾸 까먹는구만. 리스트 컴프리헨션이랑도 친해지자.
  •  

 

리스트 내포(List Comprehension)

  • for문을 돌며 append를 통해 요소를 추가하는 코드의 경우, 리스트 컴프리헨션으로 간단하게 표현할 수 있다.
  •  [ 표현식 for 항목 in 반복가능객체 if 조건문 ] 과 같이 표현
  • for문에서 반복되는 변수를 콜론(:) 다음에 쓰는 것이 아니라 for문 앞에 작성
  • 리스트 컴프리헨션에서 사용하는 변수는 for문 내부에 인자로 넣은 변수와 같다.
  • 예시:
#before
for i in lists:
	answer.append(i * 3)

#after
answer = [i * 3 for i in lists]

 

복사했습니다!