Notice
Recent Posts
Recent Comments
Link
«   2026/04   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30
Archives
Today
Total
관리 메뉴

memo6759 님의 블로그

2025-09-17(내장 함수 본문

HDC 학습일지

2025-09-17(내장 함수

heewon09 2025. 9. 18. 11:17

Python enumerate() 함수 정리 🔍

Python에서 for문으로 리스트, 튜플, 문자열 등을 순회할 때, 인덱스(index)값(value) 을 동시에 가져오고 싶을 때가 있습니다.
이럴 때 사용하는 내장 함수가 바로 enumerate() 입니다.

enumerate(iterable, start=0)

 

  • iterable : 리스트, 튜플, 문자열 등 반복 가능한 객체
  • start : 인덱스를 시작할 값 (기본값은 0)
  • 반환값 : (index, value) 형태의 enumerate 객체
  •  
list1 = list(range(1, 10, 2))
print(list1)   # [1, 3, 5, 7, 9]

# enumerate 객체 확인
print(type(enumerate(list1)))         # <class 'enumerate'>
print(tuple(enumerate(list1)))        # ((0, 1), (1, 3), (2, 5), (3, 7), (4, 9))

 

  • enumerate()는 단순 리스트가 아니라 enumerate 객체를 반환합니다.
  • 이를 tuple() 또는 list()로 감싸면 (인덱스, 값) 쌍을 확인할 수 있습니다.

3. for문에서 활용하기

for index, value in enumerate(list1):
    print("{} : {}".format(index, value))
0 : 1
1 : 3
2 : 5
3 : 7
4 : 9

4. 인덱스 시작 값 지정하기

start 매개변수를 이용해 인덱스를 원하는 숫자부터 시작할 수도 있습니다

for index, value in enumerate(list1, start=1):
    print("{} : {}".format(index, value))
1 : 1
2 : 3
3 : 5
4 : 7
5 : 9

✅ 정리

  • enumerate()는 반복 가능한 객체에서 인덱스와 값을 동시에 꺼내올 때 유용하다.
  • 기본 인덱스는 0부터 시작하지만, start 인자를 지정해 변경할 수 있다.
  • 코드 가독성을 높여 인덱스를 따로 관리하지 않아도 된다.

Python map() 함수 정리 ⚡

Python에서 map() 함수는 자료구조의 각 요소에 함수를 적용한 결과를 반환하는 내장 함수입니다.
반복문으로 일일이 처리하지 않고도, 간단하게 데이터를 변환할 수 있습니다.
 

1. 기본 문법

map(function, iterable)
  • function : 각 요소에 적용할 함수 (int, len, 사용자 정의 함수 등)
  • iterable : 리스트, 튜플, 문자열 등 반복 가능한 객체
  • 반환값 : map 객체 (필요시 list() 또는 tuple()로 변환)

2.반복문을 이용한 변환

list1 = [10.124, 8.111, 99.123]
print(list1)   # [10.124, 8.111, 99.123]

# 반복문으로 int 변환
for i, value in enumerate(list1):
    list1[i] = int(value)

print(list1)   # [10, 8, 99]

3. map()을 이용한 변환

위의 코드를 map()을 이용하면 훨씬 간단해집니다.

list1 = [10.124, 8.111, 99.123]
list1 = list(map(int, list1))
print(list1)   # [10, 8, 99]

4. 문자열 리스트 → 정수 리스트 변환

문자열로 저장된 숫자를 정수형으로 변환할 때도 활용할 수 있습니다.

list2 = ["10", "8", "2"]
list2 = list(map(int, list2))
print(list2)   # [10, 8, 2]

5. 문자열 리스트 -> 문자열 길이 변환

문자열 리스트에서 각 문자열의 길이를 새로운 튜플을 만들 수도 있습니다.

list3 = ["python", "java programming", "tuple"]
print(list3)

tuple4 = tuple(map(len, list3))
print(tuple4)   # (6, 16, 5)

정리

  • map()은 각 요소에 함수를 적용한 새로운 결과를 반환한다.
  • 반환값은 map 객체이므로, 필요하면 list()나 tuple()로 변환해야 한다.
  • 반복문보다 코드가 간결하고 가독성이 좋다.
  • 숫자 변환, 문자열 처리, 사용자 정의 함수 적용 등 다양한 곳에서 활용 가능하다.

Python random.shuffle() 정리 🎲

파이썬의 random 모듈에는 리스트의 요소 순서를 무작위로 섞을 수 있는 shuffle() 함수가 있습니다.
게임, 시뮬레이션, 랜덤 샘플링 등에서 자주 사용됩니다.
1. 기본 문법

import random
random.shuffle(x)
  • x : 변경 가능한 시퀀스 (mutable sequence, 주로 리스트)
  • 반환값 : 없음 (None 반환) → 원본 리스트가 직접 변경됨

2. 리스트 섞기

import random

list1 = [10, 20, 30, 40, 50]
print("원본 리스트:", list1)

random.shuffle(list1)
print("섞은 후 리스트:", list1)

출력 예시:

원본 리스트: [10, 20, 30, 40, 50]
섞은 후 리스트: [40, 10, 50, 20, 30]

3. 튜플에서는 불가능 ❌

튜플은 immutable(불변 객체) 이므로 요소의 순서를 바꿀 수 없습니다.
따라서 random.shuffle()을 직접 사용할 수 없습니다.

tuple1 = (10, 20, 30, 40, 50)
random.shuffle(tuple1)   # ❌ TypeError 발생

4. 튜플을 섞으려면?

튜플을 리스트로 변환 → shuffle() 적용 → 다시 튜플로 변환하는 방식을 사용할 수 있습니다.

tuple1 = (10, 20, 30, 40, 50)

list_temp = list(tuple1)       # 튜플 → 리스트
random.shuffle(list_temp)      # 리스트 섞기
tuple_shuffled = tuple(list_temp)  # 다시 튜플 변환

print(tuple_shuffled)  # 실행할 때마다 순서가 다름

 

  • random.shuffle()은 리스트의 요소 순서를 무작위로 섞는다.
  • 반환값은 없으며, 원본 리스트 자체가 변경된다.
  • 튜플은 불변(immutable) 구조이므로 shuffle() 적용 불가.
  • 튜플을 섞고 싶다면 → 리스트로 변환 후 shuffle() 적용 → 다시 튜플 변환.

Python zip() 함수 정리 🔗

Python의 내장 함수 zip()은 여러 개의 리스트, 튜플, 문자열 등 반복 가능한(iterable) 객체를 병렬로 묶어주는 기능을 합니다.
주로 여러 자료구조를 동시에 순회하거나, 관련된 데이터를 짝지을 때 유용합니다.
1. 기본 문법

zip(iterable1, iterable2, ...)

 

  • iterable : 리스트, 튜플, 문자열 등 반복 가능한 객체
  • 반환값 : zip 객체 → 필요시 list()나 tuple()로 변환
  • 조건 : 각 객체의 길이가 같아야 하며, 다를 경우 가장 짧은 길이까지만 묶임

2. 예제 데이터

list1 = ["python", "raspberry PI", "IoT", "MQTT"]
list2 = ["basic", "라즈베리파이의 사용방법", "IoT플랫폼구축", "통신"]
tuple3 = (80, 40, 40, 40)

3. zip()으로 묶기

print(list(zip(list1, list2, tuple3)))
print(tuple(zip(list1, list2, tuple3)))

출력:

[('python', 'basic', 80),
 ('raspberry PI', '라즈베리파이의 사용방법', 40),
 ('IoT', 'IoT플랫폼구축', 40),
 ('MQTT', '통신', 40)]

(('python', 'basic', 80),
 ('raspberry PI', '라즈베리파이의 사용방법', 40),
 ('IoT', 'IoT플랫폼구축', 40),
 ('MQTT', '통신', 40))

 

  • list() : 리스트 형태로 묶기
  • tuple() : 튜플 형태로 묶기

for문에서 활용하기

for subject, info, time in zip(list1, list2, tuple3):
    print("{} : {} : {}".format(subject, info, time))

 
출력:

python : basic : 80
raspberry PI : 라즈베리파이의 사용방법 : 40
IoT : IoT플랫폼구축 : 40
MQTT : 통신 : 40

zip()을 활용하면 여러 리스트를 동시에 순회할 때 인덱스를 따로 관리할 필요가 없습니다.
 

  • zip()은 여러 iterable 객체를 인덱스 기준으로 병렬 묶기 기능 제공
  • 반환값은 zip 객체이므로 list()나 tuple()로 변환해 확인 가능
  • 객체들의 길이가 다르면 → 가장 짧은 길이까지만 묶임
  • 반복문에서 자주 사용 → 코드 가독성이 높아짐

Python 문자열 분리와 결합 ✂️🔗

Python에서 문자열을 다룰 때 자주 쓰이는 기능이 바로 분리(split)결합(join) 입니다.
텍스트 데이터를 처리하거나 CSV, 로그 파일 등을 다룰 때 매우 유용합니다.
 

1. 문자열 분리 (split())

기본 문법

문자열.split(구분자)

 

  • 문자열을 지정한 구분자(separator) 기준으로 잘라서 리스트로 반환
  • 반환값의 자료형은 list

예제 1: 공백으로 분리

str1 = "python은 정말 재밌다"
result1 = str1.split(" ")
print(result1)       # ['python은', '정말', '재밌다']
print(type(result1)) # <class 'list'>

예제 2: 특정 문자로 분리

str2 = "java:python:sql:jdbc"
result2 = str2.split(":")
print(result2)       # ['java', 'python', 'sql', 'jdbc']
print(type(result2)) # <class 'list'>

2. 문자열 결합 (join())

기본 문법

구분자.join(리스트)

 

  • 리스트(또는 튜플)의 요소들을 하나의 문자열로 합침
  • 요소들은 반드시 문자열이어야 함 (숫자는 변환 필요)

예제

list1 = ["java", "python", "sql", "raspberry PI"]
str3 = " ".join(list1)
print(str3)  # java python sql raspberry PI

 

질문 코드에서는 str1.join(list1)을 사용했는데, 이 경우 str1 문자열이 구분자 역할을 합니다.
즉, "python은 정말 재밌다"가 리스트 요소들 사이에 들어갑니다.

str3 = str1.join(list1)
print(str3)

출력 예시:

javapython은 정말 재밌다pythonpython은 정말 재밌다sqlpython은 정말 재밌다raspberry PI
 

정리

  • split() : 문자열 → 리스트 변환 (구분자 기준으로 분리)
  • join() : 리스트 → 문자열 변환 (구분자 기준으로 결합)
  • 데이터 전처리, 파일 파싱, 문자열 가공에서 매우 자주 사용되는 기능