Python 기본 제공 함수 — range, len, type, sum, sorted, map, enumerate

코딩Python
읽는데 18분 소요
처음 쓰여진 날: 2026-04-10
마지막 수정일: 2026-04-24
조회수:

요약

Python 기본 제공 함수 range, len, type, sum, sorted, enumerate, map, all, any를 한 페이지에 정리합니다. 각 함수의 기본 사용법, 예시 코드, 시험 주의 포인트까지 정보처리기사 실기에 필요한 내장 함수를 모아 다룹니다.

기본 제공 함수 핵심 정리

함수설명예시
range(끝)0부터 끝-1까지 정수(소수점 없는 숫자) 범위 생성range(5) → 0, 1, 2, 3, 4
len(x)요소 개수(길이) 반환len([1, 2, 3]) → 3
type(x)자료형 반환type(100)<class 'int'>
sum(x)숫자 요소의 합 반환sum([1, 2, 3]) → 6
enumerate(x)인덱스와 값을 동시에 반환enumerate(["a", "b"]) → (0, "a"), (1, "b")
map(함수, x)각 요소에 함수를 적용한 결과 반환map(int, ["1", "2"]) → 1, 2
sorted(x)정렬된 새 리스트 반환 (원본 유지)sorted([3,1,2]) → [1, 2, 3]
all(x)모든 요소가 참이면 Trueall([True, True]) → True
any(x)하나라도 참이면 Trueany([False, True]) → True

range() — 정수 범위 생성 쌩기초

range()는 정수 범위를 생성하는 함수입니다. for문(같은 동작을 여러 번 반복하는 구문)과 함께 가장 많이 사용됩니다.

사용법 세 가지

python
코드 하이라이팅 중...

기본 사용

python
코드 하이라이팅 중...

for i in range(5):는 변수 i에 0, 1, 2, 3, 4를 차례로 넣으면서 아래 들여쓴 코드를 5번 반복 실행합니다. end=" "print()가 기본적으로 출력 후 줄을 바꾸는 것을 막고, 줄바꿈 대신 공백을 넣어서 옆으로 이어서 출력합니다.

range(5)는 for문이 반복할 때 0, 1, 2, 3, 4를 차례대로 하나씩 꺼내 쓸 수 있게 준비합니다. 5는 포함되지 않습니다.

시작과 끝 지정

python
코드 하이라이팅 중...

간격 지정

python
코드 하이라이팅 중...

range()와 C/Java 대응

C/Java를 배운 적이 있다면 참고하세요.

range 표현생성되는 값C/Java 대응
range(5)0, 1, 2, 3, 4for(i=0; i<5; i++)
range(2, 6)2, 3, 4, 5for(i=2; i<6; i++)
range(0, 10, 3)0, 3, 6, 9for(i=0; i<10; i+=3)

역순 범위

간격에 음수를 넣으면 큰 수에서 작은 수로 내려갑니다.

python
코드 하이라이팅 중...

range(5, 0, -1)은 5부터 시작해서 1씩 줄이며, 0 직전에서 멈춥니다. 0은 포함되지 않습니다.

list(range(...)) — 리스트로 변환

range()는 리스트와 달리 값을 메모리에 미리 모두 만들어 두지 않습니다. 시작·끝·간격 정보만 보관하고 있다가, 꺼내 달라고 할 때마다 계산해서 하나씩 넘겨주는 range 객체1를 돌려줍니다. 그래서 그대로 print()하면 값 목록 대신 range(0, 10) 처럼 범위 정보가 출력됩니다. 출력에 0이 포함된 이유는 생략한 시작값 기본값이 0이기 때문입니다.

python
코드 하이라이팅 중...
range(10)을 list()로 변환하는 과정을 보여주는 다이어그램
range 객체는 시작·끝·간격 규칙만 저장. list()로 감싸면 그 규칙대로 값을 모두 만들어 펼친 리스트를 돌려줍니다.

list()로 감싸면 range가 계산을 모두 완료하여 값을 메모리에 담은 리스트를 만들어 줍니다.

리스트 변환이 필요한 경우:

  • print()로 값 목록을 확인할 때
  • lst[2] 처럼 인덱스로 특정 위치 값을 꺼낼 때 — range 객체도 인덱스 접근은 가능하지만, 리스트로 변환 후 사용하는 것이 일반적
  • lst[1:4] 처럼 슬라이싱으로 구간을 잘라낼 때 — range 객체는 슬라이싱을 지원하지 않음
  • .append(), .reverse() 같은 리스트 전용 메서드를 쓸 때

인덱스는 리스트[위치번호] 형태로 특정 자리의 값을 꺼내는 방법입니다. lst[0]은 첫 번째 값, lst[-1]은 마지막 값입니다.

슬라이싱은 [시작:끝:간격] 형태로 구간을 잘라냅니다. lst[1:4]는 인덱스 1 ~ 3을 꺼내고, 간격을 주면 건너뛰며 꺼낼 수 있습니다.

python
코드 하이라이팅 중...

lst[::-2]처럼 간격이 음수이면 뒤에서부터 앞 방향으로 간격만큼 건너뛰며 꺼냅니다. range(10)을 리스트로 변환하지 않으면 슬라이싱을 바로 쓸 수 없습니다.


len() — 길이와 개수 쌩기초

len()은 시퀀스2나 컬렉션(딕셔너리, 집합 등 여러 값을 담는 자료형)의 요소 개수를 반환합니다.

python
코드 하이라이팅 중...

문자열에서의 len()

문자열의 len()문자 수를 셉니다. 공백, 점, 특수 기호도 한 글자로 셉니다.

python
코드 하이라이팅 중...

range()와 함께 쓰기

len()은 리스트의 길이만큼 반복할 때 range()와 함께 자주 쓰입니다.

python
코드 하이라이팅 중...

type() — 자료형 확인 기초

type(x)x가 어떤 자료형(데이터 타입)인지를 알려줍니다.

python
코드 하이라이팅 중...

자료형 비교

type()의 반환값끼리 ==로 비교하면 같은 자료형인지 확인할 수 있습니다.

type(42)<class 'int'>이고, type(100)<class 'int'>입니다. 두 값이 같으므로 == 비교 결과는 True입니다.

python
코드 하이라이팅 중...

조건문에서 자료형 판별

python
코드 하이라이팅 중...

sum() — 합계 기초

sum(x)는 리스트나 튜플 같은 이터러블3에 들어 있는 숫자 요소의 을 반환합니다. 시퀀스(문자열·리스트·튜플)와 컬렉션(딕셔너리·집합)은 모두 이터러블에 속합니다.

python
코드 하이라이팅 중...

평균 계산 패턴

sum()len()을 함께 사용하면 평균을 한 줄로 구할 수 있습니다.

python
코드 하이라이팅 중...

제너레이터 표현식과 함께 쓰기

sum() 안에 제너레이터 표현식을 넣으면 조건에 맞는 값만 골라서 더할 수 있습니다.

python
코드 하이라이팅 중...

%는 나머지 연산자입니다. x % 2 == 0은 "x를 2로 나눈 나머지가 0이다", 즉 짝수인지 확인하는 조건입니다. for x in nums if x % 2 == 0은 nums의 요소를 하나씩 꺼내 짝수인 것만 골라내고, sum()이 그 값들을 더합니다. nums에서 짝수는 2와 4이므로 결과는 6입니다.


enumerate() — 인덱스와 값 동시 반환 기초

enumerate()는 리스트를 for문으로 순회할 때 인덱스와 값을 동시에 돌려주는 함수입니다.

기본 사용법

python
코드 하이라이팅 중...

enumerate(fruits)는 매 회차 (인덱스, 값) 형태의 튜플(소괄호로 묶은 값 묶음)을 만들고, i, v 두 변수가 그 튜플을 언패킹(묶음에서 값을 하나씩 꺼내 각 변수에 넣는 것)해서 받습니다. 변수를 두 개 쓰는 이유는 enumerate()가 인덱스와 값을 쌍으로 돌려주기 때문입니다.

enumerate(fruits) 동작 과정 — 각 요소에 인덱스를 붙여 (인덱스, 값) 튜플을 만들고 i, v로 언패킹
enumerate()가 매 회차 (인덱스, 값) 튜플을 만들고, i와 v 두 변수로 풀어 넣는 과정

enumerate 없이 같은 동작 구현

python
코드 하이라이팅 중...

range(len(fruits))로 인덱스를 만들고 fruits[i]로 값을 꺼내는 방식입니다. enumerate()를 쓰면 이 과정을 한 줄로 줄일 수 있습니다.

start 매개변수

기본 인덱스는 0부터 시작하지만, start 매개변수(함수에 넘겨주는 설정값)로 시작 번호를 바꿀 수 있습니다.

python
코드 하이라이팅 중...

sorted() 함수 기초

sorted(이터러블)은 이터러블3의 요소를 정렬한 새 리스트를 반환합니다. 원본 데이터는 변경하지 않습니다.

python
코드 하이라이팅 중...

리스트·집합·문자열 모두 사용 가능

sorted()는 어떤 이터러블에도 쓸 수 있으며, 항상 리스트를 반환합니다.

python
코드 하이라이팅 중...

reverse 매개변수 — 내림차순

reverse=True를 넣으면 큰 값에서 작은 값 순으로 정렬합니다.

python
코드 하이라이팅 중...

key=lambda — 정렬 기준 바꾸기

sorted()key 매개변수에는 함수를 넣습니다. 그 함수가 돌려주는 값을 기준으로 정렬이 수행됩니다. 한 번 쓰고 버릴 함수라면 람다 표현식을 바로 전달하는 것이 관례입니다.

람다의 일반 형태는 다음과 같습니다 — 이름 없는 함수를 한 줄로 만든 것입니다.

python
코드 하이라이팅 중...

튜플 리스트를 두 번째 원소로 정렬

python
코드 하이라이팅 중...

lambda x: x[1]은 "튜플 x가 들어오면 x[1]을 돌려주는 함수"입니다. sorted가 각 튜플마다 이 함수를 호출해 반환값(점수)으로 순서를 매깁니다.

문자열 길이로 정렬

python
코드 하이라이팅 중...

딕셔너리를 값 기준으로 정렬 — items()와 결합

딕셔너리는 items()(키, 값) 튜플 묶음을 꺼낼 수 있습니다. 여기에 sorted(... key=lambda x: x[1])을 결합하면 값을 기준으로 정렬된 (키, 값) 리스트를 얻습니다.

python
코드 하이라이팅 중...

빈도 카운팅(dict.get 패턴)으로 만든 딕셔너리를 값 기준으로 정렬하면 최빈값(가장 많이 등장한 값)을 바로 뽑을 수 있습니다.

python
코드 하이라이팅 중...
데이터 형태대표 패턴결과
튜플 리스트sorted(data, key=lambda x: x[1])두 번째 원소로 정렬
문자열 리스트sorted(words, key=lambda s: len(s))길이로 정렬
딕셔너리sorted(d.items(), key=lambda x: x[1])값 기준 정렬

map() — 함수를 각 요소에 적용 심화

map(함수, 이터러블)은 이터러블의 각 요소를 함수에 하나씩 넣어 호출하고, 그 결과를 하나씩 순서대로 꺼낼 수 있도록 저장해 둔 map 객체를 돌려줍니다. map 객체는 리스트와 달리 값을 미리 모두 만들어 두지 않고, 꺼낼 때마다 계산합니다. int는 정수 자료형이면서 동시에 값을 정수로 변환하는 함수로도 쓰입니다.

기본 사용법

python
코드 하이라이팅 중...

위 코드에서 map(int, nums)nums의 각 요소("1", "2", "3")를 int() 함수에 넣어 int("1") → 1, int("2") → 2, int("3") → 3으로 변환합니다.

map(int, nums) 동작 과정 — 각 요소를 int() 함수에 통과시켜 변환
map()은 리스트의 각 요소를 하나씩 함수에 통과시켜 결과를 만든다

map 객체는 list()로 변환해야 합니다

map()은 리스트가 아니라 map 객체를 반환합니다. map 객체는 아직 계산이 완료된 리스트가 아니기 때문에, 그대로 print()하면 값 대신 <map object at 0x...> 처럼 Python 내부 메모리 위치가 출력됩니다.

python
코드 하이라이팅 중...

map()의 동작을 for문으로 풀어 쓰기

python
코드 하이라이팅 중...

lambda와 함께 쓰기

기본 제공 함수 대신 직접 만든 동작을 적용하려면 lambda 표현식(이름을 따로 짓지 않고 한 줄로 쓰는 간단한 함수)과 함께 씁니다.

python
코드 하이라이팅 중...

lambda x: x + 100은 "x를 받아 x + 100을 돌려주는 이름 없는 함수"입니다. map()이 리스트의 각 요소를 이 함수에 넣어 결과를 모읍니다.


all()과 any() 심화

all()any()는 이터러블의 요소를 처음부터 끝까지 하나씩 확인한 뒤, 최종 결과를 True 또는 False 하나로 돌려주는 함수입니다.

all() — 모두 참이면 True

Python에서 숫자 0False로, 0이 아닌 숫자는 True로 취급합니다. 이 규칙이 all()any()에도 그대로 적용됩니다.

python
코드 하이라이팅 중...

any() — 하나라도 참이면 True

python
코드 하이라이팅 중...

all()과 any() 비교

함수조건빈 리스트일 때
all(x)모든 요소가 참이면 TrueTrue
any(x)하나라도 참이면 TrueFalse
python
코드 하이라이팅 중...

제너레이터 표현식과 함께 쓰기

all()any() 안에 제너레이터 표현식을 넣으면 조건 판별을 한 줄로 작성할 수 있습니다.

python
코드 하이라이팅 중...

x % 2 == 0 for x in nums는 nums의 각 요소에 대해 x % 2 == 0(짝수인지)을 검사합니다. 예를 들어 [2, 4, 6, 8]에서는 [2%2==0, 4%2==0, 6%2==0, 8%2==0][True, True, True, True]가 되고, all()이 이 결과를 받아 전부 True이므로 True를 반환합니다.


정보처리기사 실기 기출 문제


Footnotes

  1. 객체(object)는 값과 동작을 함께 가진 데이터 덩어리입니다. range 객체는 시작·끝·간격 값을 저장하고 있으며, for문이나 list()가 요청할 때마다 다음 정수를 계산해서 넘겨줍니다.

  2. 시퀀스(sequence)는 여러 값을 순서대로 묶어 저장하는 자료형입니다. 문자열, 리스트, 튜플이 대표적입니다.

  3. 이터러블(iterable)은 리스트, 튜플, 문자열, 제너레이터처럼 여러 값을 차례대로 꺼낼 수 있는 대상을 통틀어 이르는 말입니다. for ... in ... 구문에 넣을 수 있는 모든 것이 이터러블입니다. 2


Python 기본 제공 함수 — range, len, type, sum, sorted, map, enumerate | 정처기 감자