본문 바로가기
programming/Python

파이썬 컬렉션 비교 List Tuple Set Dictionary

by 개코 - 개발과 코딩 2021. 10. 9.

파이썬은 컬렉션이라 하여 데이터들을 모아두는 저장소를 가질 수 있다. 배열과 같은 특성을 가지는데 4가지의 컬렉션이 있다. 이들은 엄연히 특징이 다르다. 이 특징을 알면 데이터를 가공하고 조작하는데 수월할 것이다. 개인적인 생각이지만 튜플과 딕셔너리만 잘해도 무리는 없을 것이란 생각이다.

파이썬 컬렉션 비교
List Tuple Set Dictionary

파이썬은 4가지의 컬렉션이 있다.

데이터의 집합으로써 구성하고 가공하는데 이만한 것은 없다.

종류는 다음과 같다.

  • List 리스트
  • Tuple 튜플
  • Set 세트
  • Dictionary 딕셔너리

이들은 데이터구조를 잠깐 살펴보면 다음과 같다.

연속적인 데이터구조를 가지고 있는 것을 알 수 있다.

차이가 있다면 딕셔너리는 키와 값을 쌍으로 가진 데이터구조의 연속임을 알 수 있다.

print('----------')

vList = ["아이린", "슬기", "웬디", "조이", "예리"]

vTuple = ("지수", "제니", "로제", "리사")

vSet = {"민영", "유정", "은지", "유나"}

vDict = {
    "레드벨벳": vList,
    "블랙핑크": vTuple,
    "브레이브걸스": vSet
}

vDictinary = {
    "type": "아이돌 걸그룹",
    "count" : len(vDict),
    "group": vDict
}

print("딕셔너리 Dintionary items : ", type(vDictinary), len(vDictinary), vDictinary)

print('----------')

결과화면을 보면 알 수 있듯이 데이터 타입이 달라도 딕셔너리에 포함될 수 있다.

이런 데이터 집합을 컬렉션이라 하고 배열의 형태를 가진다.

공통점

컬렉션들의 특징은 동일하지 않아도 데이터들을 연속적인 집합의 형태로 가지고 있을 수 있다.

리스트, 튜플, 세트, 딕셔너리 는 이것을 잘 보여준다.

숫자와 문자가 섞여도 된다.

단지, 데이터의 형태만 맞춰주면 왠만한 데이터 구조는 허용한다.

이들은 엄연히 다른 차이를 가지기도 한다.

차이점

파이썬 컬렉션은 차이가 있다.

데이터들이 집합을 이루고 있지만, 이것이 파이썬이 내부적으로 인덱스를 가지고 있느냐 없느냐 이다.

인덱스를 가지고 있지 않다면 컬렉션의 값을 수정하거나 삭제할 수 없다.

이것을 ordered unordered 라고 한다.

  • Ordered
    파이썬이 내부적으로 인덱스를 가지고 있다.
  • Unordered
    파이썬이 내부적으로 인덱스를 가지고 있지 않다.

이 구성으로 파이썬 컬렉션을 구분하여 사용할 필요가 있다.

  • List 리스트
    인덱스 있는 Ordered, 데이터 수정가능, 중복가능
  • Tuple 튜플
    인덱스 있는 Ordered, 데이터 수정불가, 중복가능
  • Set 세트
    인덱스 없는 Unordered, 데이터 중복불가
  • Dictionary 딕셔너리
    인덱스 있는 Ordered, 데이터 수정가능, 중복불가

데이터의 구성만 봐도 굳이 이런 차이는 몰라도 되는 것일 수 있다.

다만 데이터를 수정하거나 가공하기 전에 백업용도의 원본데이터를 보관하고 싶다면 튜플 등을 사용하여 원본데이터를 보관하고 copy() 함수를 사용하여 별도의 조작가능한 데이터로 복사하여 사용하는 것이 좋다.

반응형

댓글