본문 바로가기
IT 이야기

방송통신대 파이썬프로그래밍기초::8강 콜렉션1 &기말시험 예상기출문제(정답및 해설)

by bush 2026. 5. 24.
728x90
반응형
728x170

[파이썬 기초] 리스트, 튜플, 세트, 딕셔너리 완벽 정리 (자료구조 콜렉션 1)

오늘은 파이썬 프로그래밍의 핵심이자 기초가 되는 '콜렉션(Collection)'에 대해 알아보겠습니다.

 

반응형

 

방송통신대 파이썬프로그래밍기초

 

여러 데이터를 효율적으로 묶어서 관리하는 리스트, 튜플, 세트, 딕셔너리의 개념부터 리스트 슬라이싱, 컴프리헨션까지 핵심만 쏙쏙 뽑아 정리했습니다. 포스팅 하단의 기출문제로 실력 점검까지 놓치지 마세요.

 

 

 

 

 

 

1. 핵심 내용 요약

① 콜렉션(Collection)의 이해

  • 정의: 여러 데이터를 묶어 하나의 구조로 다루기 위해 제공되는 자료 구조의 총칭입니다.
  • 구분: 데이터 저장 방식과 접근 방식에 따라 크게 3가지로 분류됩니다.
    • 시퀀스: 순서가 있는 구조로 리스트(list), 튜플(tuple)이 있습니다.
    • 비시퀀스: 순서가 없는 구조로 세트(set)가 있습니다.
    • 매핑: Key-Value 쌍으로 이루어진 딕셔너리(dictionary)가 있습니다.

② 컬렉션별 특징 비교

  • 리스트(list): 데이터를 순서 있게 저장하는 가변(mutable) 시퀀스입니다. 대괄호[]를 사용하며, 서로 다른 데이터 타입을 함께 저장할 수 있고 원소의 추가·삭제·수정이 자유롭습니다.
  • 튜플(tuple): 데이터를 순서 있게 저장하는 불변(immutable) 시퀀스입니다. 소괄호()를 사용하며, 생성 후 원소를 변경할 수 없어 데이터 안정성이 높고 리스트보다 메모리 효율 및 접근 속도가 빠릅니다.
  • 세트(set): 중복을 허용하지 않고 순서가 없는 컬렉션입니다. 중괄호{}를 사용하며 수학의 집합 개념을 구현하여 데이터 정제(중복 제거)에 유용합니다.
  • 딕셔너리(dictionary): Key-Value(키-값) 쌍으로 데이터를 저장하는 매핑 구조입니다. 중괄호{} 안에 키:값 형태로 저장하며, 키는 불변 객체만 허용됩니다. 키를 통해 값을 매우 빠르게 검색할 수 있습니다.

③ 리스트 활용 및 주요 메서드

  • 인덱싱: 접근 연산자[]를 사용합니다. 양수 인덱스는 왼쪽부터(0부터 시작), 음수 인덱스는 오른쪽부터(-1부터 시작) 순차 접근합니다.
  • 연산자 및 내장 함수: in(포함 여부), +(리스트 연결), *(리스트 반복 복사) 연산자와 len() (원소 개수), max(), min(), sum() 등의 내장 함수를 지원합니다.
  • 주요 메서드:
    • append(x): 리스트 끝에 원소 x 추가
    • pop(i): 인덱스 i 위치의 원소를 반환하고 제거
    • insert(index, x): 지정된 인덱스 위치에 원소 x 삽입
    • remove(x): 리스트에서 첫 번째로 나오는 원소 x 제거
    • sort(): 리스트 원소들을 오름차순 정렬

④ 리스트 슬라이싱 & 컴프리헨션

  • 슬라이싱(Slicing): 리스트[시작:끝:간격] 구문으로 부분 리스트를 생성합니다.
    • 예: numbers[::-1] 구문을 사용하면 리스트의 원소들을 역순으로 뒤집을 수 있습니다.
  • 리스트 컴프리헨션(List Comprehension): 리스트를 간결하고 직관적으로 생성·조작하는 문법입니다.
    • 구문: [표현식 for 변수 in 리스트 if 조건]
    • 특징: 코드가 짧아져 가독성이 향상되며(pythonic), 내부 최적화 덕분에 일반 for문보다 처리 속도가 빠릅니다.
728x90

 

2. 기출문제 5  (연습문제)

1. 다음 파이썬 콜렉션 중 데이터의 수정, 추가, 삭제가 불가능한 '불변(immutable) 시퀀스 자료형'은 무엇인가요?

 

① list

② tuple

③ set

④ dictionary

 

2. 다음 파이썬 코드의 실행 결과로 올바른 것은 무엇인가요?

Python
items = ["apple", "banana", "apple", "orange"]
unique_items = set(items)
print(len(unique_items))

 

① 2

② 3

③ 4

④ 에러 발생

 

3. 리스트 hei_list = [1, 5, 14, 26, 31]이 있을 때, 뒤에서 두 번째 원소인 26을 가리키는 인덱싱 표현으로 올바른 것은 무엇인가요?

① hei_list[-1]

② hei_list[-2]

③ hei_list[2]

④ hei_list[-3]

 

4. 리스트의 메서드 중 '주어진 인덱스 위치의 원소를 반환하고 동시에 리스트에서 제거하는 메서드'는 무엇인가요?

① remove()

② pop()

③ delete()

④ insert()

 

5. 다음 중 리스트 컴프리헨션을 이용하여 리스트 [1, 5, 14, 26, 31]에서 짝수(even)만 추출하는 코드로 올바른 것은 무엇인가요?

① hei_even = [h for h in hei_list if h % 2 == 0]

② hei_even = [h for h in hei_list for h % 2 == 0]

③ hei_even = [h if h % 2 == 0 for h in hei_list]

④ hei_even = [h for h in hei_list while h % 2 == 0]

 

300x250

 

3. 정답 및 해설

  • 1 정답: ② tuple
    • 해설: 튜플(tuple)은 리스트와 유사하지만 생성 후 원소를 바꿀 수 없도록 설계된 대표적인 불변(immutable) 시퀀스 자료구조입니다.
  • 2 정답: ② 3
    • 해설: 세트(set) 자료구조는 중복을 허용하지 않습니다. items 리스트에 "apple"이 중복되어 있으므로 set(items)를 수행하면 중복이 제거되어 {"apple", "banana", "orange"} 총 3개의 원소만 남게 됩니다. 따라서 길이는 3입니다.
  • 3 정답: ② hei_list[-2]
    • 해설: 리스트 인덱싱에서 음수를 사용하면 오른쪽(끝)에서부터 역순으로 접근합니다. 가장 마지막 원소(31)가 -1이고, 그 앞의 원소(26)는 -2가 됩니다.
  • 4 정답: ② pop()
    • 해설: pop(i) 메서드는 주어진 인덱스 위치의 원소를 꺼내서 반환한 뒤 리스트 내에서 해당 항목을 삭제합니다. 반면 remove(x)는 인덱스가 아닌 원소의 '값'을 기준으로 찾아서 제거합니다.
  • 5 정답: ① hei_even = [h for h in hei_list if h % 2 == 0]
    • 해설: 리스트 컴프리헨션에서 조건을 필터링할 때의 기본 구문 형식은 [표현식 for 변수 in 리스트 if 조건] 구조를 가집니다. 따라서 맨 뒤에 if h % 2 == 0 조건을 붙인 1번이 올바른 문법입니다.

 

마무리:

파이썬의 다양한 콜렉션 특징과 활용법을 완벽히 이해하셨나요? 리스트, 튜플, 세트, 딕셔너리는 파이썬 프로그래밍 및 데이터 분석의 가장 기본이 되는 도구이므로 꼭 손으로 직접 코딩하며 익혀두시길 권장합니다.

 

 

처음이야? 파이썬 기초:동영상 강의로 배우는 292개 코드 따라하기(핵심노트+오픈채팅+스터디) -

쿠팡에서 처음이야? 파이썬 기초:동영상 강의로 배우는 292개 코드 따라하기(핵심노트+오픈채팅+스터디) 구매하고 더 많은 혜택을 받으세요! 지금 할인중인 다른 프로그래밍 언어 제품도 바로 쿠

www.coupang.com

 

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

 

 

 

 

 

728x90
반응형
그리드형

댓글