본문 바로가기
코딩/Python

[Python] 파이썬 리스트 배열 클래스로 구현하고 사용하기

by Prayy 2023. 10. 1.
반응형

언젠가의 자료구조 수업에서 진행했던 과제이다.

파이썬 리스트를 별도 파일에서 클래스로 구현하고, 이를 다른 파일에서 모듈로 불러와 사용한다.

리스트를 배열 - 클래스 스타일로 구현

<코드 본문>

class ArrayList:
    def __init__(self ):
        self.items=[]
 
    def insert(self,pos,elem):
        self.items.insert(pos,elem)
    def delete(self,pos):
        return self.items.pop(pos)
    def isEmpty(self ):
        return self.size()==0
    def getEntry(self,pos):
        return self.items[pos]
    def size(self):
        return len(self.items)
    def clear(self):
        self.items=[]
    def find(self,item):
        return self.items.index(item)
    def replace(self,pos,elem):
        self.items[pos]=elem
    def sort(self):
        self.items.sort()
    def merge_1(self,lst):
        self.items.extend(lst)
    def merge_2(self, otherArryList):
        self.items.extend(otherArryList.items)
    def display(self,msg='ArrayList:'):
        print(msg,'항목수=',self.size(),self.items)

init - 요소들을 저장할 items 리스트를 생성한다

insert - pos로 입력된 인덱스에 elem을 삽입하고 리턴한다

delete - pos로 입력된 인덱스의 요소를 삭제하고 리턴한다

isEmpty - 리스트가 비어있다면 True, 그렇지 않다면 False를 리턴한다

getEntry - pos로 입력된 인덱스의 요소를 리턴한다

size - 리스트 내 요소의 개수(리스트의 길이)를 리턴한다

clear - 리스트 내 요소를 모두 지운다. (초기화 하는 것과 동일하다)

find - item으로 입력받은 요소의 인덱스를 반환한다

replace - pos 인덱스의 요소를 elem으로 바꾼다

sort - 오름차순으로 요소를 정렬한다

merge - 인자로 입력받은 lst를 items 리스트 우측에 병합한다.

merge_2 - 입력받은 otherArryList 우측에 items를 병합한다

 

 

클래스 테스트 진행

s=ArrayList()
s.display('파이썬 리스트로 구현한 리스트 테스트')

s.insert(0,10)
s.insert(0,20)
s.insert(1,30)
s.insert(s.size(),40)
s.insert(2,50)

s.display('파이썬 리스트로 구현한 List(삽입*5): ')
s.sort()
s.display('파이썬 리스트로 구현한 List(정렬후): ')
s.replace(2,90)
s.display('파이썬 리스트로 구현한 List(교체*1): ')
s.delete(2)
s.delete(s.size()-1)
s.delete(0)
s.display('파이썬 리스트로 구현한 List(삭제*3): ')
lst1=[1,2,3]
s.merge_1(lst1)
s.display('파이썬 리스트로 구현한 List(병합후): ')

lst=ArrayList()
lst.insert(0,6)
lst.insert(0,5)
lst.insert(0,4)
s.merge_2(lst)
s.display('파이썬 리스트로 구현한 List(병합후): ')
s.clear()
s.display('파이썬 리스트로 구현한 List(클리어): ')

 

결과

파이썬 리스트로 구현한 리스트 테스트 항목수= 0 []
파이썬 리스트로 구현한 List(삽입*5):  항목수= 5 [20, 30, 50, 10, 40]      
파이썬 리스트로 구현한 List(정렬후):  항목수= 5 [10, 20, 30, 40, 50]      
파이썬 리스트로 구현한 List(교체*1):  항목수= 5 [10, 20, 90, 40, 50]      
파이썬 리스트로 구현한 List(삭제*3):  항목수= 2 [20, 40]
파이썬 리스트로 구현한 List(병합후):  항목수= 5 [20, 40, 1, 2, 3]
파이썬 리스트로 구현한 List(병합후):  항목수= 8 [20, 40, 1, 2, 3, 4, 5, 6]
파이썬 리스트로 구현한 List(클리어):  항목수= 0 []

 

반응형

'코딩 > Python' 카테고리의 다른 글

VSCode / Python 파이썬 설치 개발 환경 세팅(윈도우)  (0) 2023.09.30