알고리즘

파이썬 자료형 - 부제: 파이썬 코테의 장점

침착하고 가야할 곳에만 집중하는 달팽이 2025. 7. 7. 16:16

자바로만 코딩 테스트를 보다가 파이썬으로 갈아타니까 아주 편하고 신기한게 많다...!

 

우선 파이썬의 자료형에 대해 이야기해보고자 한다. (자료 출처: 이것이 코딩 테스트다 with 파이썬 )

 

대박이다. 왜 이렇게 편한게 많지 


편한 자료형들과 그 사용법

1. 리스트 인덱싱과 슬라이싱

파이썬은 일반 배열 대신에 리스트를 주로 사용한다. (일반 배열도 있긴 하지만 잘 안 쓴다.)

이때 리스트의 인덱스 값에 음수를 넣으면 원소를 거꾸로 탐색할 수 있다..! 

a = [1,2,3,4]
print(a[-1]) 

# 출력값: 4

 

 

그리고 슬라이싱을 사용하면 연속적인 위치의 원소들을 가져올 수 있다. 

a = [1,2,3,4,5,6]
print(a[2:4])

# 출력: [3, 4] -> 3번째부터 4-1번째까지 가져옴

 

너무 편하다...! 

 

+ 추가 활용법 예시!

a[:3]  # 처음부터 2번째까지 (=3번째 인덱스 전까지)
a[3:]  # 3번째부터 끝까지
a[:]   # 전체 복사

 

2. 리스트 컴프리헨션

한 줄로 리스트를 초기화 하는 아주 편한 방법이다. 

만약 0~10 사이의 홀수로만 이루어진 리스트를 만들고 싶으면 이렇게 한 줄로 조건문, 반복문 다 넣을 수 있다. 

arr = [i for i in range(10) if i % 2 == 1]
print(arr)

# 출력: [1,3,5,7,9]

 


근데 여기서 잠깐~~

얕은 복사를 피하기 위해 리스트 컴프리헨션을 사용해야만 경우도 있다. 

 

보통 1차원 배열을 0으로 초기화 한다고 하면 

arr = [0] * 4
print(arr)

# 출력: [0,0,0,0]

 

이렇게 만드는데 그렇다면 2차원 배열을 초기화할 때 

arr = [[0] * 4] * 3
print(arr)

# 출력: [[0,0,0,0],[0,0,0,0],[0,0,0,0]] 
# 제대로 나온 것 같지만..!

 

이렇게 만들어야 한다고 생각하기가 쉽다 

물론 당장 출력해보면 2차원 배열이 제대로 만들어진 것 같겠지만 처음에 만들어진 [0] * 4 배열에 대한 레퍼런스가 3개 만들어진 것이다. 

그래서 arr[0],[1] 값을 바꾸면 arr[1],[1], arr[2][1] 값도 똑같이 바뀔 것이다. 

 

이런 문제를 만들지 않기 위해 

arr = [[0 for _ in range(4)] for _ in range(3)]
print(arr)

# 출력: [[0,0,0,0],[0,0,0,0],[0,0,0,0]]

 

이렇게 리스트 컴프리헨션을 사용해야 한다. 


3. 집합 자료형

집합 자료형을 이용해서 너무나 쉽게 합집합, 교집합, 차집합을 구할 수 있다!

집합 자료형은 자바의 set 과 비슷하다고 보면 된다. 

중복을 허용하지 않고, 순서가 없다. 

a = set([1,2,3,4,5])
b = set([2,4,6,8])

print(a | b)  # 합집합 출력: {1, 2, 3, 4, 5, 6, 8}
print(a & b)  # 교집합 출력: {2, 4}
print(a - b)  # 차집합 출력: {1, 3, 5}

 

너무 편해... 

 

아직 기초 문법을 공부하고 있어서 자료형만 이야기했지만 앞으로 다른 문법과 라이브러리 공부하면서 편리한거 있으면 정리해두겠다. 모두 파이썬 코테보자

 

파이썬