줄기세포

[Python 3.7 / 파이썬 마스터] 컬렉션 자료형 - 리스트, 튜플, 딕셔너리, 집합 (List, Tuple, Dictionary, Set) 본문

Python

[Python 3.7 / 파이썬 마스터] 컬렉션 자료형 - 리스트, 튜플, 딕셔너리, 집합 (List, Tuple, Dictionary, Set)

줄기세포(Stem_Cell) 2023. 6. 19. 00:07

파이썬에서 컬렉션 자료형을 쓰는 경우가 많아서 간단하게 정리해봤다.

자료형끼리 간단하게 비교해보려고 한다.

컬렉션 자료형

  • 여러가지 데이터 타입을 묶어서 사용할 수 있는 데이터 타입(자료형)이다.
  • 주로 리스트와 딕셔너리를 많이 사용

1. 리스트 (List)

  • 순서를 가진 컬렉션 자료형
    • 순서가 있기 때문에 index 존재
  • [ ] 대괄호로 선언
  • 내부 요소들은 콤마(,)로 구분
>>> a = [1, 2, 3, 4]
>>> a
[1, 2, 3, 4]
  • 리스트 안에 리스트를 넣을 수도 있음
>>> a = [1, 2, 3, ['a', 'b,', 'c']]
>>> a
[1, 2, 3, ['a', 'b,', 'c']]

2. 튜플 (Tuple)

리스트와 유사함

  • 역시 순서를 가짐
    • index 사용 가능
  • () 소괄호로 선언
  • 내부 요소들은 콤마(,)로 구분
  • 프로그램 구동 중 한번 선언되면 항상 값이 변하지 않음
  • 튜플 자체 삭제는 가능한데, 요 수정은 불가
# ()로 선언
>>> a = (1,2,3)
>>> a
(1, 2, 3)

# () 없이 선언
>>> a = 'a', 'b', 'c'
>>> a
('a', 'b', 'c')

# 보니까 count와 index 메소드만 가지고 있네 
>>> dir(a)   
['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', 
'__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', 
'__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', 
'__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', 
'__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'count', 'index']

3. 딕셔너리 (Dictionary)

  • 각 요소가 key(키), value(값) 으로 연결되어 있음
  • 순서가 없
  • {} 중괄호로 선언
  • 콤마(,)로 구분
  • key(키) 에 string, 숫자타입 또는 이 두개로 구성된 튜플(Tuple) 사용할 수 있음
>>> a = {'키':183, '나이': 18, (1,'a'):'b', 1:1}
>>> a
{'키': 183, '나이': 18, (1, 'a'): 'b', 1: 1}
>>> type(a)
<class 'dict'>

4. 집합(Set)

  • 리스트와 비슷하지만 순서 없음
  • 중복값을 가질 수 없음
  • { } 로 선언
    • dict와 다르게 key, value 대신 값만 선언
  • 이름에서 알수 있게 합집합, 차집합 등 두개 이상의 집합으로 집 관련된 연산 가능
>>> a = {1,2,3,4}
>>> type(a)
<class 'set'>

# 튜플(Tuple) 가능
>>> a = {'a',1,2,3,(4,5),'b','b'}
>>> a
{1, 2, 3, (4, 5), 'b', 'a'}
# 중복 선언은 값 하나만 유효 -> 중복 불가

# 리스트(List) 불가
>>> a = {'a',1,2,3,(4,5),[7,8,9],'b','b'}
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'list'
Comments