본문 바로가기

언어/Python

[ Python ] array 패키지 사용하기

반응형

Python에서 array 모듈을 사용하는 방법은 매우 간단합니다. array는 동일한 타입의 데이터만을 저장할 수 있는 배열을 생성할 수 있도록 도와줍니다. 기본적으로 리스트와 비슷하지만, 더 적은 메모리를 사용하며 빠르게 동작하는 배열을 만들 때 유용합니다.

array 모듈을 사용할 때 배열의 데이터 타입을 지정해야 합니다. 이를 위해 데이터 형식을 나타내는 타입 코드를 사용합니다. 예를 들어, 정수, 부동소수점 등의 데이터를 저장할 수 있습니다.

array 모듈 사용법

array 모듈은 Python 표준 라이브러리에 포함되어 있기 때문에 별도의 설치 없이 사용할 수 있습니다.

1. array 모듈 임포트하기

먼저 array 모듈을 임포트해야 합니다.

import array

2. 배열 생성하기

array 배열을 생성하려면 array.array()를 사용하며, 첫 번째 인자로 타입 코드와 배열의 초기값을 전달합니다.

타입 코드

타입코드 데이터 형식 메모리 크기
i 정수형 (signed int) 2 또는 4바이트
f 부동소수점 (float) 4바이트
d 부동소수점 (double) 8바이트

3. 배열 예시

정수형 배열 생성

import array

# 정수형 배열 생성 (타입코드 'i'는 signed int를 의미)
int_array = array.array('i', [1, 2, 3, 4, 5])
print(int_array)

부동소수점형 배열 생성

import array

# 부동소수점형 배열 생성 (타입코드 'f'는 float를 의미)
float_array = array.array('f', [1.1, 2.2, 3.3, 4.4])
print(float_array)

4. 배열 조작하기

배열에 대한 조작은 리스트와 비슷한 방식으로 할 수 있습니다. 몇 가지 주요 메서드들을 소개합니다.

배열에 값 추가하기 (append, extend)

# 정수 배열 생성
int_array = array.array('i', [1, 2, 3])

# 배열 끝에 값 추가
int_array.append(4)

# 배열에 여러 값 추가
int_array.extend([5, 6, 7])

print(int_array)  # 출력: array('i', [1, 2, 3, 4, 5, 6, 7])

배열에서 값 삭제하기 (remove, pop)

# 배열에서 값 삭제
int_array.remove(3)  # 첫 번째로 등장하는 3을 삭제
print(int_array)     # 출력: array('i', [1, 2, 4, 5, 6, 7])

# 인덱스로 값 삭제
int_array.pop(2)     # 인덱스 2에 있는 값 삭제
print(int_array)     # 출력: array('i', [1, 2, 5, 6, 7])

배열 요소에 접근하기 (인덱싱 및 슬라이싱)

# 인덱스로 접근
print(int_array[0])  # 출력: 1

# 슬라이싱
print(int_array[1:3])  # 출력: array('i', [2, 5])

5. 배열의 메모리 크기 확인하기

배열이 얼마나 많은 메모리를 사용하는지 확인할 수 있습니다.

print(int_array.itemsize)  # 각 요소의 바이트 크기 출력
print(len(int_array))      # 배열의 길이 출력
print(int_array.buffer_info())  # 배열의 버퍼 정보 (주소와 길이) 출력

6. 배열을 리스트로 변환하기

배열을 리스트로 변환할 때는 tolist() 메서드를 사용합니다.

list_from_array = int_array.tolist()
print(list_from_array)  # 출력: [1, 2, 5, 6, 7]

예제 전체 코드

import array

# 정수형 배열 생성
int_array = array.array('i', [1, 2, 3, 4])

# 배열에 값 추가
int_array.append(5)
int_array.extend([6, 7, 8])

# 배열 요소 접근 및 출력
print("배열 요소:", int_array)
print("첫 번째 요소:", int_array[0])
print("2번째 ~ 4번째 요소:", int_array[1:4])

# 배열에서 값 삭제
int_array.remove(3)
print("3 제거 후:", int_array)

# 배열을 리스트로 변환
list_from_array = int_array.tolist()
print("리스트로 변환:", list_from_array)

결론

array 모듈은 Python의 기본 리스트보다 메모리 효율적으로 배열을 사용할 수 있도록 해줍니다. 리스트와 비슷한 방식으로 사용할 수 있지만, 같은 데이터 타입을 강제하는 점과 메모리 사용이 더 적다는 점이 차이점입니다.

반응형