문자열 인덱싱
문자열 인덱싱은 문자열의 특정 위치에 있는 문자를 가져오는 방법이다. 인덱스는 0부터 시작하며, 음수 인덱스를 사용하면 문자열의 끝에서부터 역순으로 접근할 수 있다.
# 문자열 설정
text = "Hello, World!"
# 인덱싱 예제
print(text[0]) # 출력: H (첫 번째 문자)
print(text[7]) # 출력: W (여덟 번째 문자)
print(text[-1]) # 출력: ! (마지막 문자)
print(text[-5]) # 출력: o (뒤에서 다섯 번째 문자)
문자열 슬라이싱
문자열 슬라이싱은 문자열의 일부분을 추출하는 방법이다. 슬라이싱은 [start:end:step] 형식을 사용하며, start는 시작 인덱스, end는 끝 인덱스(포함되지 않음), step은 간격을 의미한다.
# 문자열 설정
text = "Hello, World!"
# 슬라이싱 예제
print(text[0:5]) # 출력: Hello (0번 인덱스부터 4번 인덱스까지)
print(text[7:12]) # 출력: World (7번 인덱스부터 11번 인덱스까지)
print(text[:5]) # 출력: Hello (처음부터 4번 인덱스까지)
print(text[7:]) # 출력: World! (7번 인덱스부터 끝까지)
print(text[:]) # 출력: Hello, World! (전체 문자열)
print(text[::2]) # 출력: Hlo ol! (2칸씩 건너뛰며 추출)
print(text[::-1]) # 출력: !dlroW ,olleH (역순으로 추출)
인덱싱과 슬라이싱을 동시에 활용한 실무 예제 - 로그 파일에서 날짜와 오류 메시지 추출하기
문자열 인덱싱과 슬라이싱을 동시에 활용하면 문자열의 특정 부분을 효율적으로 추출하고 조작할 수 있다. 예를 들어, 로그 파일에서 특정 정보를 추출하거나, 텍스트 데이터에서 특정 패턴을 찾는 작업에 유용하다.
로그 파일의 각 줄에서 날짜와 오류 메시지를 추출하는 예제를 살펴보자. 로그 파일의 형식은 다음과 같다:
2024-08-07 12:34:56 ERROR: Something went wrong
2024-08-07 12:35:56 INFO: All systems operational
2024-08-07 12:36:56 ERROR: Another error occurred
이 로그 파일에서 날짜와 오류 메시지만 추출하는 코드를 작성해보자.
# 로그 파일의 각 줄을 리스트로 저장
log_lines = [
"2024-08-07 12:34:56 ERROR: Something went wrong",
"2024-08-07 12:35:56 INFO: All systems operational",
"2024-08-07 12:36:56 ERROR: Another error occurred"
]
# 날짜와 오류 메시지를 추출하는 함수
def extract_error_info(log_lines):
for line in log_lines:
if "ERROR" in line:
# 날짜 추출 (인덱싱과 슬라이싱을 동시에 활용)
date = line[:10] # 처음 10글자: 2024-08-07
# 오류 메시지 추출
error_message = line[line.index("ERROR:") + 7:] # "ERROR:" 다음부터 끝까지
print(f"Date: {date}, Error: {error_message}")
# 함수 호출
extract_error_info(log_lines)
결과
Date: 2024-08-07, Error: Something went wrong
Date: 2024-08-07, Error: Another error occurred
설명
- 날짜 추출: line[:10]을 사용하여 문자열의 처음 10글자를 추출한다. 이는 날짜를 의미한다.
- 오류 메시지 추출: line.index("ERROR:") + 7을 사용하여 "ERROR:" 문자열의 위치를 찾고, 그 이후의 문자열을 추출한다.
이 예시는 인덱싱과 슬라이싱을 동시에 활용하여 문자열에서 필요한 정보를 효율적으로 추출하는 방법을 보여준다. 이러한 기법은 로그 파일 분석, 데이터 전처리 등 다양한 실무 상황에서 유용하게 사용될 수 있다.
'job > python' 카테고리의 다른 글
리스트와 튜플의 사용 시점을 결정하는 기준 (0) | 2024.08.07 |
---|---|
리스트와 튜플의 차이 (0) | 2024.08.07 |
인덱싱, 슬라이싱을 활용한 2차원 배열 처리 (0) | 2024.08.07 |
숫자형: 복합연산자 (0) | 2024.08.07 |
02장 파이썬 프로그래밍의 기초, 자료형 (0) | 2024.08.07 |