본문 바로가기
IT/Python Quiz

[python] 리스트 컴프리헨션 코드 작성 연습2

by Echinacea 2025. 2. 20.
반응형

 

 

문제 1

주어진 리스트에서 음수를 제거하고, 양수만 포함하는 리스트를 리스트 컴프리헨션을 사용하여 생성하세요.

🔹 입력 예시

numbers = [-10, 15, -3, 7, -2, 8]

🔹 출력 예시

[15, 7, 8]

 

 

문제 2

문자열 리스트에서 각 단어의 길이를 리스트 컴프리헨션을 이용해 생성하세요.

🔹 입력 예시

words = ["apple", "banana", "cherry"]

🔹 출력 예시

[5, 6, 6]

 

 

문제 3

1부터 10까지의 숫자 중에서 짝수는 문자열로 변환하고, 홀수는 그대로 유지하는 리스트를 리스트 컴프리헨션으로 생성하세요.

🔹 입력 예시

numbers = list(range(1, 11))

🔹 출력 예시

[1, "2", 3, "4", 5, "6", 7, "8", 9, "10"]

 

 

문제 4

리스트 컴프리헨션을 사용하여 주어진 문자열 리스트에서 첫 글자만 추출한 리스트를 생성하세요.

🔹 입력 예시

words = ["hello", "world", "python", "list"]

🔹 출력 예시

['h', 'w', 'p', 'l']

 

 

문제 5

2차원 리스트를 받아 대각선 요소(왼쪽 위에서 오른쪽 아래)를 추출하는 리스트 컴프리헨션을 작성하세요.

🔹 입력 예시

matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

🔹 출력 예시

[1, 5, 9]

 

 

 

 

 

 

✅ 정답과 해설

문제 1 정답

✅ 리스트 컴프리헨션 사용

positive_numbers = [x for x in numbers if x > 0]

✅ 리스트 컴프리헨션 사용하지 않음

positive_numbers = []
for x in numbers:
    if x > 0:
        positive_numbers.append(x)

🔍 설명: if x > 0 조건을 사용하여 양수만 필터링합니다.


문제 2 정답

word_lengths = [len(word) for word in words]

🔍 설명: 각 단어의 길이를 len() 함수를 사용하여 리스트에 저장합니다.


문제 3 정답

formatted_numbers = [str(x) if x % 2 == 0 else x for x in numbers]

🔍 설명: if-else 문을 사용하여 짝수는 문자열로 변환하고, 홀수는 그대로 유지합니다.


문제 4 정답

first_letters = [word[0] for word in words]

🔍 설명: 각 단어의 첫 번째 문자를 word[0]을 이용하여 추출합니다.


문제 5 정답

✅ 리스트 컴프리헨션 사용

diagonal_elements = [matrix[i][i] for i in range(len(matrix))]

✅ 리스트 컴프리헨션 사용하지 않음

diagonal_elements = []
for i in range(len(matrix)):
    diagonal_elements.append(matrix[i][i])

🔍 설명: 2차원 리스트의 대각선 요소를 matrix[i][i]를 통해 추출합니다.


반응형

댓글