enumerate() · lambda 출력 결과 퀴즈 (30문항)

학번

이름
현재 점수: 0 / 30

1번. 다음 코드의 출력 결과는?

s = 'AI'
print(list(enumerate(s)))
상세 풀이
enumerate()는 기본적으로 0부터 시작하는 (인덱스, 값) 쌍을 만듭니다.

2번. 다음 코드의 출력 결과는?

s = 'cat'
print(list(enumerate(s, start=1)))
상세 풀이
start=1을 지정했으므로 인덱스가 1부터 시작합니다.

3번. 다음 코드의 출력 결과는?

lst = [10, 20, 30]
print([v for i, v in enumerate(lst) if i % 2 == 0])
상세 풀이
인덱스 0과 2가 짝수이므로 해당 값 10, 30을 선택합니다.

4번. 다음 코드의 출력 결과는?

lst = ['a', 'b', 'c']
print([i for i, v in enumerate(lst) if v != 'b'])
상세 풀이
값이 b가 아닌 a, c의 인덱스는 0, 2입니다.

5번. 다음 코드의 출력 결과는?

t = ('봄', '여름', '가을')
print([f'{i}:{v}' for i, v in enumerate(t, 1)])
상세 풀이
enumerate의 시작값 1과 f-string을 사용해 번호:값 문자열을 만듭니다.

6번. 다음 코드의 출력 결과는?

d = {'국어':90, '영어':85}
print(list(enumerate(d.items(), 1)))
상세 풀이
items()는 (키, 값)을 만들고 enumerate가 그 앞에 번호를 붙입니다.

7번. 다음 코드의 출력 결과는?

s = 'python'
print(''.join(c.upper() if i % 2 else c for i, c in enumerate(s)))
상세 풀이
홀수 인덱스 1,3,5의 문자만 대문자로 바뀝니다.

8번. 다음 코드의 출력 결과는?

nums = [3, 1, 2]
print(list(map(lambda x: x * 2, nums)))
상세 풀이
map은 모든 원소에 lambda x: x*2를 적용합니다.

9번. 다음 코드의 출력 결과는?

nums = [1, 2, 3]
print(list(map(lambda x: x ** 2, nums)))
상세 풀이
** 2는 제곱 연산입니다.

10번. 다음 코드의 출력 결과는?

nums = [1, 2, 3, 4]
print(list(filter(lambda x: x % 2 == 0, nums)))
상세 풀이
filter는 조건이 참인 짝수만 남깁니다.

11번. 다음 코드의 출력 결과는?

words = ['apple', 'kiwi', 'fig']
print(sorted(words, key=lambda x: len(x)))
상세 풀이
key에 문자열 길이를 사용하므로 길이 3,4,5 순입니다.

12번. 다음 코드의 출력 결과는?

words = ['apple', 'kiwi', 'fig']
print(sorted(words, key=lambda x: len(x), reverse=True))
상세 풀이
reverse=True는 길이가 긴 순서로 정렬합니다.

13번. 다음 코드의 출력 결과는?

pairs = [('a', 3), ('b', 1), ('c', 2)]
print(sorted(pairs, key=lambda x: x[1]))
상세 풀이
각 튜플의 두 번째 값 x[1]을 기준으로 오름차순 정렬합니다.

14번. 다음 코드의 출력 결과는?

d = {'a': 1, 'b': 2}
print(dict(map(lambda x: (x[0], x[1] + 10), d.items())))
상세 풀이
각 (키, 값)에서 값에 10을 더한 새 튜플을 dict로 만듭니다.

15번. 다음 코드의 출력 결과는?

st = {1, 2, 3}
print(set(map(lambda x: x + 1, st)))
상세 풀이
집합의 각 원소에 1을 더해 다시 집합으로 변환합니다.

16번. 다음 코드의 출력 결과는?

t = (1, 2, 3, 4)
print(tuple(filter(lambda x: x > 2, t)))
상세 풀이
2보다 큰 값은 3과 4입니다.

17번. 다음 코드의 출력 결과는?

s = 'banana'
print(list(filter(lambda x: x != 'a', s)))
상세 풀이
문자열도 반복 가능하며 a가 아닌 문자만 남깁니다.

18번. 다음 코드의 출력 결과는?

nums = [5, 2, 8]
print(max(nums, key=lambda x: -x))
상세 풀이
-x 값이 가장 큰 원소는 원래 값이 가장 작은 2입니다.

19번. 다음 코드의 출력 결과는?

nums = [-3, 1, -5, 2]
print(max(nums, key=lambda x: abs(x)))
상세 풀이
절댓값이 가장 큰 값은 abs(-5)=5인 -5입니다.

20번. 다음 코드의 출력 결과는?

names = ['Kim', 'Lee', 'Park']
print(list(enumerate(names))[1])
상세 풀이
리스트의 두 번째 항목(인덱스 1)은 (1, 'Lee')입니다.

21번. 다음 코드의 출력 결과는?

nums = [10, 20, 30]
print(sum(i * v for i, v in enumerate(nums)))
상세 풀이
0*10 + 1*20 + 2*30 = 80입니다.

22번. 다음 코드의 출력 결과는?

s = 'abcd'
print([c for i, c in enumerate(s) if i < 2])
상세 풀이
인덱스가 0,1인 첫 두 문자만 리스트에 담습니다.

23번. 다음 코드의 출력 결과는?

nums = [1, 2, 3]
print(list(map(lambda x: str(x), nums)))
상세 풀이
str(x)는 숫자를 문자열로 변환합니다.

24번. 다음 코드의 출력 결과는?

nums = [1, 2, 3, 4]
print(list(filter(lambda x: x < 3, nums)))
상세 풀이
3보다 작은 값 1,2만 남습니다.

25번. 다음 코드의 출력 결과는?

d = {'a': 3, 'b': 1, 'c': 2}
print(sorted(d, key=lambda x: d[x]))
상세 풀이
딕셔너리 키를 각 키의 값 d[x] 기준으로 정렬합니다.

26번. 다음 코드의 출력 결과는?

nums = [1, 2, 3]
print(list(map(lambda x, y: x + y, nums, [10, 20, 30])))
상세 풀이
map은 두 리스트에서 같은 위치의 x,y를 받아 더합니다.

27번. 다음 코드의 출력 결과는?

s = 'ABC'
print({i: c.lower() for i, c in enumerate(s)})
상세 풀이
딕셔너리 컴프리헨션으로 인덱스를 키, 소문자를 값으로 만듭니다.

28번. 다음 코드의 출력 결과는?

data = [4, 7, 2]
print(min(enumerate(data), key=lambda x: x[1]))
상세 풀이
(인덱스, 값)에서 x[1] 즉 값이 가장 작은 항목은 (2,2)입니다.

29번. 다음 코드의 출력 결과는?

nums = [1, 2, 3]
print([v + i for i, v in enumerate(nums)])
상세 풀이
각 항목에서 값과 인덱스를 더하면 1+0,2+1,3+2입니다.

30번. 다음 코드의 출력 결과는?

s = 'hello'
print(''.join(map(lambda x: x.upper(), s[:2])))
상세 풀이
s[:2]는 he이고, 각 문자를 대문자로 바꾼 뒤 join합니다.