memo6759 님의 블로그
2025-09-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 : 94. 인덱스 시작 값 지정하기
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 : 통신 : 40zip()을 활용하면 여러 리스트를 동시에 순회할 때 인덱스를 따로 관리할 필요가 없습니다.
- 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() : 리스트 → 문자열 변환 (구분자 기준으로 결합)
- 데이터 전처리, 파일 파싱, 문자열 가공에서 매우 자주 사용되는 기능
'HDC 학습일지' 카테고리의 다른 글
| 2025-09-22(학습 리뷰) (0) | 2025.09.23 |
|---|---|
| 2025-09-22(자바 Stream, git) (0) | 2025.09.22 |
| 2025-09-17(컴프리헨션, 내장 함수,리스트, 튜플, 딕셔너리)-1 (0) | 2025.09.17 |
| 2025-09-16(python 기본) (0) | 2025.09.17 |
| 2025-09-15(제네릭, 파이썬 설치 환경 및 VisualStudioCode) (0) | 2025.09.16 |