Chapter 01. 데이터 분석가에게 꼭 필요한 기초 문법
인덱싱과 슬라이싱 - 자료형변환
인덱스란?
+인덱스는 0부터 시작
-인덱스는 -1부터 시작

슬라이싱이란?
순서가 있는 자료형 [시작 : 종료 : 폭 ] # 시작 인덱스부터 종료 인덱스까지 증가 폭만큼 증가시킨 배열을 반환
1. 종료 인덱스에 해당하는 요소는 포함하지 않는다.
2. 시작 인덱스, 종료 인덱스, 증가 폭의 기본값은 각각 0, 매열의길이 +1, 1이다.
3. 콜론이 하나만 입력되면 앞과 뒤의 인덱스를 각각 시작 인덱스와 종료 인덱스로 인식한다.
4. 증가폭이 음수면 거꾸로 슬라이싱
ex)
L = [1,2,3,4,5,6,7,8,9,0]
L[0:5:2] ## L = [1,3,5]
S = '1234567890'
S[5:] ## S = '67890'
L = [1,2,3,4,5,6,7,8,9,0]
L[:3] ## L = '1,2,3'
실습
리스트에서 인덱싱 연습
- 아래 리스트에서 세 번째 요소를 출력하세요.
- 마지막 요소를 출력하세요.
- 첫 번째 요소를 100으로 변경하고 리스트를 출력하세요.
- my_list = [10, 20, 30, 40, 50]
my_list = [10, 20, 30, 40, 50]
print(my_list[2])
print(my_list[-1], my_list[4])
my_list[0] = 100
print(my_list)
30
50 50
[100, 20, 30, 40, 50]
리스트에서 슬라이싱 연습
- 아래 리스트에서 첫 3개의 요소를 슬라이싱하세요.
- 리스트의 마지막 두 요소를 슬라이싱하세요.
- 리스트를 거꾸로 슬라이싱하여 출력하세요.
- my_list = [1, 2, 3, 4, 5, 6, 7, 8]
my_list = [1, 2, 3, 4, 5, 6, 7, 8]
print(my_list[:3])
print(my_list[-2:])
print(my_list[::-1]) # 값을 역정렬할 때 사용하는 테크닉
[1, 2, 3]
[7, 8]
[8, 7, 6, 5, 4, 3, 2, 1]
문자열에서 인덱싱과 슬라이싱 연습
- 아래 문자열에서 첫 번째 문자를 출력하세요.
- 문자열의 마지막 문자를 출력하세요.
- 문자열의 첫 5문자를 슬라이싱하여 출력하세요.
- 문자열의 홀수 번째 문자만 슬라이싱하여 출력하세요.
- my_string = "PythonProgramming"
my_string = "PythonProgramming"
print(my_string[0])
print(my_string[-1])
print(my_string[:5])
print(my_string[::2])
P
g
Pytho
PtoPormig
리스트와 문자열 혼합 실습
- 두 번째 요소를 출력하세요.
- 아래 리스트의 두 번째 요소에서 첫 번째 문자를 출력하세요.
- 두 번째 요소에서 마지막 두 문자를 슬라이싱하세요.
- my_mixed_list = ["Apple", "Banana", "Cherry"]
my_mixed_list = ["Apple", "Banana", "Cherry"]
print(my_mixed_list[1])
print(my_mixed_list[1][0])
print(my_mixed_list[1][-2:])
Banana
B
na
인덱싱/슬라이싱으로 값 바꾸기
- 아래 리스트의 맨 뒤 두 개 값을 50과 60으로 바꾸세요
- my_list = [10,20,30,40,99,99]
# 인덱싱 활용하기
my_list = [10,20,30,40,99,99]
my_list[-2] = 50
my_list[-1] = 60
print(my_list)
# 슬라이싱 활용하기 (1)
my_list = [10,20,30,40,99,99]
my_list[-2:] = [50, 60] # [99,99] = [50,60]
print(my_list)
# 슬라이싱 활용하기 (2)
my_list = [10,20,30,40,99,99]
my_list = my_list[:4] + [50, 60] # 리스트 연산
print(my_list)
[10, 20, 30, 40, 50, 60]
함수와 메서드
메서드는 함수의 일종이고, 함수는 입력이 들어오면 출력이 나가는 장치
함수는 함수(변수), 메서드는 변수.메서드()
func(s) # 함수
s.method() # 메서드
공통 내장 함수
type() : 객체의 자료형을 확인한다.
len() : 요소의 개수를 반환한다. (문자열, 리스트, 튜플, 딕셔너리, 세트 등)
sum() : 요소의 합계를 반환한다. (요소가 모두 int나 float일 때 사용 가능)
min() : 요소의 최솟값을 반환한다. (요소가 모두 int나 float일 때 사용 가능)
max() : 요소의 최댓값을 반환한다. (요소가 모두 int나 float일 때 사용 가능)
sorted() : 요소를 정렬한 결과를 반환한다. (기본값 = 오름차순, reverse=True = 내림차순)
문자열 메서드
str.upper(), str.lower() : 모든 문자를 대문자/소문자로 변환 (주로 문자열 일치 여부 확인 때 사용)
str.strip(), str.lstrip(), str.rstrip() : 양 옆 공백, 왼쪽 공백, 오른쪽 공백 제거
str.replace(a,b) : a 문자열을 b 문자열로 변환
str.split(delimiter) : delimiter(구분자)를 기준으로 문자열을 나누고 list로 만든다.
str.join(iterable) : 문자열을 iterable 요소 사이에 삽입하여 하나의 문자열로 만든다 ( 구분자.join() )
리스트 메서드
list.append() : 리스트 끝에 요소를 추가합니다.
list.insert(index, item) : 특정 위치에 요소를 삽입
list.remove(item) : 특정 요소를 삭제. 요소가 없으면 에러 발생.
list.index(item) : 특정 요소의 첫 번째 인덱스를 반환한다. 없으면 오류 발생. (튜플 지원)
list.count(item) : 특정 요소의 개수를 반환한다. (튜플 지원)
* 값의 위치, 갯수를 찾는 list.index(item), list.count(item)는 튜플도 지원 가능
set 메서드
set.remove(item) : 특정 요소를 제거한다. 요소가 없으면 에러 발생.
set.union(other_set) : 두 집합의 합집합을 반환한다. (set1.union(set2))
set.intersection(other_set) : 두 집합의 교집합을 반환한다.
set.difference(other_set) : 차집합을 반환한다.
dict 메서드
dict.keys() : 모든 키를 반환한다.
dict.values() : 모든 값을 반환한다.
dict.items() : 키와 값을 튜플로 묶어 반환한다.
자료형 변환
자료형 변환이란 한 자료형의 데이터를 다른 자료형으로 변경하는 것을 의미한다.
int() : 정수 변환 함수로 숫자형 데이터를 정수로 변환. 단, 문자열이 숫자로 수정되어 있으면 변환 가능 ( 소수점 포함 문자열은 변환 불가) ## int (float("2.34")) 로 변환 가능
float() : 실수 변환 함수로 숫자형 데이터를 실수로 변환함. 단, 문자열이 숫자로 수정되어 있으면 변환 가능
str() : 모든 자료형을 문자열로 변환
list() : 순서가 있는 자료형을 리스트로 변환
tuple() : 순서가 있는 자료형을 튜플로 변환
set() : 집합으로 변환 (중복 제거 할 때 사용)
실습
리스트 내 중복 제거 실습
L = [1, 2, 2, 3, 4, 4, 5]
print(L) # 원본
L = set(L)
print(L) # 집합으로 변환
L = list(L) # 리스트로 변환
L = sorted(L) # 정렬
print(L)
[1, 2, 2, 3, 4, 4, 5]
{1, 2, 3, 4, 5}
[1, 2, 3, 4, 5]
L = [1, 2, 2, 3, 4, 4, 5]
L = sorted(set(L))
print(L)
[1, 2, 3, 4, 5]
* sorted 함수는 그 자체로 리스트 함수기 때문에 list 함수 생략 가능
산술 연산자
산술 연산자란?
숫자 값을 이용한 기본적인 수학 연산 수행
| 연산자 | 기능 | 예제 | 결과 |
| + | 덧셈 | 5+3 | 8 |
| - | 뺄셈 | 5-3 | 2 |
| * | 곱셈 | 5*3 | 15 |
| / | 나눗셈 | 5/3 | 1.666... |
| // | 몫 | 5//3 | 1 |
| % | 나머지 | 5%3 | 2 |
| ** | 거듭제곱 | 5**3 | 125 |
* // 몫, % 나머지, ** 거듭제곱
산술 연산자의 활용
str 자료형 * 숫자 (int 자료형) : 문자열을 숫자만큼 반복
str 자료형 + str 자료형 : 문자열을 연결
list 자료형 * 숫자 (int 자료형) : 리스트를 숫자만큼 반복
list 자료형 + list 자료형 : 리스트를 연결
암시적 형변환
암시적 형변환이란?
파이썬이 자동으로 데이터를 다른 자료형으로 변환하는 것으로 서로 다른 두 자료형이 더 큰 범위의 자료형으로 통일되는 것.
int 자료형과 float 자료형이 연산되면 float 자료형이 된다.
bool 자료형과 int(float) 자료형이 연산되면 int(float) 자료형이 된다. 이때 bool 자료형은 True은 1, False는 0으로 간주.
bool > int > float > str
비교 연산자
비교연산자란?
비교 연산자는 두 값을 비교하여 관계를 평가하고, 그 결과로 Bool을 반환하는 연산자.
| 연산자 | 설명 | 예제 | 결과 |
| == | 두 값이 같은지 비교 | 5 == 5 | True |
| != | 두 값이 다른지 비교 | 5 != 5 | False |
| < | 왼쪽 값이 오른쪽 값보다 작은지 비교 | 3 < 5 | True |
| > | 왼쪽 값이 오른쪽 값보다 큰지 비교 | 5 > 3 | True |
| <= | 왼쪽 값이 오른쪽 값보다 작거나 같은지 비교 | 5 <= 5 | True |
| >= | 왼쪽 값이 오른쪽 값보다 크거나 같은지 비교 | 7 >= 3 | True |
멤버십 연산자
멤버십 연산자란?
특정 값이 컨테이너 자료형(리스트, 튜플, 문자열, 집합, 딕셔너리 등) 안에 존재하는지 또는 존재하지 않는지를 확인하는 연산자.
in 연산자 : 특정 값이 컨테이너에 존재하는지 확인합니다.
not in 연산자 : 특정 값이 컨테이너에 존재하지 않는지 확인합니다.
논리 연산자
논리 연산자란?
여러 조건을 결합하거나 조건을 반전시킬 때 사용되는 연산자.
and : 양쪽 조건이 모두 참일 때 : 하나라도 거짓 = 거짓
or : 양쪽 조건 중 하나라도 참이면 참 : 두 조건이 모두 거짓일 때 = 거짓
not : 조건이 참이면 거짓, 거짓이면 참을 반환
* 이 글은 제로베이스 데이터사이언스 파트타임 스쿨의 강의 자료 일부를 발췌하여 작성되었습니다.
생각정리
이번 강의를 통해 인덱싱과 슬라이싱 개념을 더 명확하게 이해할 수 있었다.
인덱스가 0부터 시작하고, 음수 인덱스를 통해 뒤에서부터 접근할 수 있다는 점은 직관적이면서도 코드를 간결하게 만든다는 생각이 든다. 특히 슬라이싱에서 종료 인덱스가 포함되지 않는다는 규칙은 처음엔 헷갈리지만, 익숙해지면 범위를 유연하게 다루는 데 유용할 것 같다.
또한 함수와 메서드의 차이를 다시 정리할 수 있었고, 다양한 내장 함수와 문자열/리스트/집합/사전 메서드를 실제로 어떻게 활용할 수 있을지 감이 잡혔다.
자료형 변환 부분에서는 set()을 이용해 중복을 제거하고, list()와 sorted()를 통해 다시 정리된 리스트를 얻는 과정이 실무에서도 자주 쓰일 수 있겠다는 점이 와닿았다.
마지막으로 산술 연산자, 비교 연산자, 멤버십/논리 연산자까지 학습하면서 단순 계산을 넘어서 조건문과 데이터 처리에 활용되는 기초 문법을 정리할 수 있었다.
적용점
- 인덱싱·슬라이싱 습관화
리스트나 문자열을 다룰 때 반복문 대신 슬라이싱으로 문제를 해결할 수 있는지 먼저 고민해보고, 효율적인 코드를 작성하는 연습을 해야겠다. - 자료형 변환 적극 활용
데이터 전처리 과정에서 중복 제거, 자료형 변경, 정렬 등을 자주 다루게 되므로 set(), list(), sorted() 같은 변환과정들을 직접 실습하면서 익숙해져야겠다. - 내장 함수/메서드 정리
len(), sum(), max() 같은 함수는 바로 떠올릴 수 있도록 하고, 문자열과 리스트 메서드는 실제 데이터 처리 과제를 할 때 빠르게 적용할 수 있도록 예시를 만들어봐야겠다. - 연산자 실습
비교 연산자, 멤버십 연산자, 논리 연산자를 조합해 조건문을 구성하는 연습을 해두면 나중에 if, while 같은 제어문을 배울 때 훨씬 자연스럽게 연결될 것 같다.
'데이터' 카테고리의 다른 글
| 제로베이스 데이터사이언스 스쿨 - Part 01. 데이터 분석을 위한 Python_Chapter 01-6 (0) | 2025.09.20 |
|---|---|
| 제로베이스 데이터사이언스 스쿨 - Part 01. 데이터 분석을 위한 Python_Chapter 01-5 (0) | 2025.09.19 |
| 제로베이스 데이터사이언스 스쿨 - Part 01. 데이터 분석을 위한 Python_Chapter 01-4 (0) | 2025.09.18 |
| 제로베이스 데이터사이언스 스쿨 - Part 01. 데이터 분석을 위한 Python_Chapter 01-3 (0) | 2025.09.17 |
| 제로베이스 데이터사이언스 스쿨 - Part 01. 데이터 분석을 위한 Python_Chapter 01-1 (0) | 2025.09.15 |