본문 바로가기
etc.

[Java/Python] 문법 비교 정리 #4 자료구조 - List

by Lee David 2022. 11. 4.
반응형

Java에서의 리스트

// 1. ArrayList - 조회성으로 많이 사용하는 리스트
List arrList = new ArrayList();

// 2. LinkedList - 데이터 조회보다는 인자를 insert/delete가 많이 일어나는 경우 사용하는 리스트
List linkList = new LinkedList();

// 가장 많이 사용하는 메서드 정리
arrList.add(1); // 1을 저장
arrList.remove(1); // 1을 삭제
arrList.size(0); // 리스트의 크기 확인
arrList.indexOf(1); // 1이 있을 경우 해당 인덱스를 반환, 없을 경우 -1을 반환

두개의 리스트 모두 자주 사용하지만 성능 이슈로 목적에 맞게 사용해 주어야 합니다.


Python에서의 리스트

# [] 대괄호를 사용하여 리스트를 선언해 줍니다.
list = ['a', 'b', 'c', 'd', 'e', 'f', 'g']

list.append('h') # 리스트 마지막 인덱스 다음에 인자를 추가합니다.
list.remove('c') # 리스트에서 c를 삭제합니다. 없는 인자를 삭제 요청할 경우 ValueError가 발생합니다.
len(list) # 리스트의 크기를 확인할 경우 len(Object) 메서드를 사용합니다.
list.index('b') # 특정 인자의 위치(index)를 조회 합니다. 없는 경우 -1을 반환합니다.

# 유용한 메서드
list.count('f') # f의 갯수를 반환해 줍니다.
listCopy = list.copy() # list를 복사하여 동일한 리스트를 제공 합니다.

파이썬에서는 이밖에도 tuple이라는 시퀀스형 자료 구조를 지원합니다. (이후 시퀀스형 자료구조가 추가 될 예정입니다.)

tuple은 리스트와 동일해 보이지만 한번 선언된 이후 내부 인자를 수정할 수 없지만 "시퀀스 언패킹"을 통해 내부에 가진 인자를 또다른 변수에 대입할 수 있습니다.

# 튜플 선언
tupleExample = (1,2,3)
tupleExample[0] = 5 # TypeError: 'tuple' object does not support item assignment를 발생합니다.

# 튜플 언패킹 (좌측에 변수의 갯수는 튜플이 가진 인자의 수도 동일해야 합니다.)
a, b, c = tupleExample # 3개의 인자가 변수의 선언된 순서대로 대입되게 됩니다.
print(a, b, c) # 1 2 3
반응형