Python 핵심 자료형 정리: 숫자, 문자열, 리스트, 튜플, 딕셔너리, 집합

Alchemist·2026년 10월 6일

KT AIVLE

목록 보기
37/130

Python 핵심 자료형 정리: 숫자, 문자열, 리스트, 튜플, 딕셔너리, 집합

Python 코드를 읽고 쓰기 위해서는 먼저 어떤 값을 어떤 자료형으로 표현하는지 이해해야 한다.

숫자를 계산할 때와 사용자 목록을 관리할 때, API 응답을 저장할 때 필요한 자료구조는 서로 다르다.


숫자형

정수 int

user_count = 120
retry_count = 3
temperature = -3

Python의 정수는 매우 큰 값도 별도의 long 타입 없이 다룰 수 있다.

big_number = 10 ** 100

실수 float

conversion_rate = 2.75
temperature = 21.5
value = 1.2e3

2진수, 8진수, 16진수

binary_value = 0b1010
octal_value = 0o12
hex_value = 0xFF

색상 값, 파일 권한, 비트 연산 등을 다룰 때 볼 수 있다.


숫자 연산자

a = 13
b = 5
연산자의미
+덧셈
-뺄셈
*곱셈
/일반 나눗셈
//버림 나눗셈
%나머지
**거듭제곱
print(a / b)
print(a // b)
print(a % b)
print(a ** b)

/는 실수 결과를 반환하고, //는 버림 나눗셈 결과를 반환한다.

7 / 4
1.75
7 // 4
1

짝수 여부는 나머지 연산으로 확인할 수 있다.

number = 12

if number % 2 == 0:
    print("짝수")

문자열 str

service_name = "My API"
message = 'Hello'

여러 줄 문자열:

email_body = """
안녕하세요.

가입이 완료되었습니다.
서비스를 이용해 주세요.
"""

문자열 인덱싱

text = "Python"

print(text[0])
print(text[-1])
P
n

문자열 슬라이싱

print(text[0:3])
print(text[:2])
print(text[2:])
print(text[::-1])

문자열은 변경 불가능한 객체다.

# 오류
text[0] = "J"

새 문자열을 만들어야 한다.

text = "J" + text[1:]

f-string

name = "kim"
score = 92

print(
    f"{name}님의 점수는 "
    f"{score}점입니다."
)

천 단위 쉼표:

price = 1250000

print(f"{price:,}원")

퍼센트:

rate = 0.12345

print(f"{rate:.2%}")

문자열 주요 메서드

text = "  Python API  "
text.strip()
text.upper()
text.lower()
text.find("API")

포함 여부만 확인한다면 in이 읽기 쉽다.

if "API" in text:
    print("API 문자열 포함")

문자열 나누기:

skills = (
    "python,sql,fastapi"
    .split(",")
)

문자열 합치기:

skills = [
    "python",
    "sql",
    "fastapi",
]

text = ", ".join(skills)

리스트 list

순서가 있고 수정 가능한 여러 값을 저장한다.

users = [
    "kim",
    "lee",
    "park",
]
users.append("choi")
users.extend(["jung", "han"])
users.insert(1, "seo")
users.remove("lee")
removed = users.pop()

정렬:

scores = [95, 70, 88]

scores.sort()

sorted_scores = sorted(
    scores
)

sort()는 원본을 변경하고 sorted()는 새 리스트를 반환한다.


튜플 tuple

튜플은 순서가 있지만 값을 변경할 수 없다.

coordinate = (
    37.5,
    127.0,
)

latitude, longitude = (
    coordinate
)

함수에서 여러 값을 반환할 때도 자주 사용된다.

def get_range():
    return 10, 20


minimum, maximum = (
    get_range()
)

딕셔너리 dict

키와 값을 연결해서 저장한다.

user = {
    "id": 101,
    "name": "kim",
    "role": "admin",
}
print(user["name"])

user["email"] = (
    "kim@example.com"
)

user["role"] = "editor"

키가 없을 가능성이 있다면 get()을 사용할 수 있다.

email = user.get(
    "email",
    "없음",
)

반복:

for key, value in user.items():
    print(
        key,
        value,
    )

API JSON 데이터는 리스트와 딕셔너리의 조합으로 다루는 경우가 많다.

response_data = {
    "users": [
        {
            "id": 1,
            "name": "kim",
        },
        {
            "id": 2,
            "name": "lee",
        },
    ]
}

집합 set

집합은 중복된 값을 허용하지 않는다.

tags = {
    "python",
    "backend",
    "python",
}

리스트 중복 제거:

user_ids = [
    1,
    1,
    2,
    3,
    3,
]

unique_ids = set(
    user_ids
)

집합 연산:

admin = {
    "read",
    "write",
    "delete",
}

editor = {
    "read",
    "write",
}
admin & editor
admin | editor
admin - editor
editor.issubset(admin)

불 자료형 bool

is_logged_in = True
is_admin = False

Python에서는 다음 값들이 거짓으로 평가된다.

False
None
0
0.0
""
[]
{}
set()

그래서 다음처럼 작성할 수 있다.

users = []

if not users:
    print(
        "사용자가 없습니다."
    )

변수와 참조

original = [
    "python",
    "sql",
]

copied = original

copied.append("ai")
print(original)
['python', 'sql', 'ai']

copied = original은 리스트를 복사한 것이 아니라 같은 객체를 가리킨다.

별도의 리스트가 필요하다면:

copied = original.copy()

중첩 구조까지 독립적으로 복사해야 한다면:

import copy

copied = copy.deepcopy(
    original
)

자료형 선택 기준

상황추천 자료형
순서가 있고 수정이 많음list
순서가 있지만 값이 고정됨tuple
이름으로 값을 조회dict
중복 제거, 집합 연산set
참/거짓 상태bool

핵심 정리

  • int와 float는 숫자를 표현하고 /, //, %, ** 등의 연산자를 사용할 수 있다.
  • 문자열은 순서가 있지만 변경할 수 없는 객체다.
  • 문자열 포매팅에는 f-string이 읽기 쉽고 활용도가 높다.
  • list는 순서가 있고 수정 가능한 컬렉션이다.
  • tuple은 순서가 있지만 변경할 수 없어 고정 값 묶음에 적합하다.
  • dict는 키와 값의 구조로 API 데이터나 객체 정보를 표현하기 좋다.
  • set은 중복 제거와 집합 연산에 유용하다.
  • 변수 대입은 객체 복사와 다를 수 있으므로 참조와 복사의 차이를 이해해야 한다.
profile
html_programming_language

0개의 댓글