본문 바로가기
Study/Python study

[Python(파이썬)] 리스트, 튜플, 세트, 딕셔너리

by 파크영 2021. 7. 6.

리스트 (list)

  • 순차 자료형, 가변 자료형
  • 데이터를 나열한 열거 데이터의 집합(파이썬에서 사용되는 모든 자료형을 저장가능)이다. 
  • [] 로 표현, 각각의 항목은 쉼표(,)로 구분한다. 
  • 리스트 선언 방법 [] or list()
>>> test = []
>>> test2 = list()
>>> type(test)
<class 'list'>
>>> type(test2)
<class 'list'>

 


튜플  (tuple)

  • '리스트 타입'과 닮았지만 값을 변경할 수 없는 특징을 가진다. 
  • extend(), append(), pop(), insert(), remove() 와 같은 값 변경하는 함수 존재 하지 않는다. 
  • 순차 자료형,` 불변 자료형
  • () 로 표현, 각각의 항목은 쉼표(,)로 구분한다. 
  • 튜플 선언 방법 () or tuple()
# 빈 튜플 선언
>>> test = ()
>>> type(test)
<class 'tuple'>

>>> test2 = tuple()
>>> type(test2)
<class 'tuple'>

 

 

# 튜플 선언
# 튜플은 소괄호()로 감싸거나, 아예 감싸지 않는 방법으로 선언 가능하다. 
>>> test = ('가','나','다','라')
>>> test2 = 'a','b','c','d','e'

# 값 확인
>>> test
('가', '나', '다', '라')
>>> test2
('a', 'b', 'c', 'd', 'e')
# type 확인
>>> type(test)
<class 'tuple'>
>>> type(test2)
<class 'tuple'>

 

'문자열'도 이미 변경할 수 없는 열거 데이터로 이루어진 데이터 타입으로 결국 문자로 이루어진 튜플과 같다. 

# 튜플 값 변경 eroor
>>> test = (1, 2, 3, 4)
>>> test[1]
2
>>> test[1] = 5
Traceback (most recent call last):
  File "<pyshell#8>", line 1, in <module>
    test[1] = 5
TypeError: 'tuple' object does not support item assignment


# 문자열 값 변경 error
>>> test2 = 'abcde'
>>> test2[2]
'c'
>>> test2[2] = 'd'
Traceback (most recent call last):
  File "<pyshell#12>", line 1, in <module>
    test2[2] = 'd'
TypeError: 'str' object does not support item assignment

 

TypeError: 'tuple' object does not support item assignment
-> 타입에러: 튜플 객체는 항목 값을 바꿀 수 없다. 

TypeError: 'str' object does not support item assignment
-> 타입에러: 문자열 객체는 항목 값을 바꿀 수 없다. 

 

항목이 한개 있는 튜플 선언 하는 경우에는 쉼표 기호(,)를 마지막에 꼭 붙여준다. 

# 항목이 한개 있는 튜플 선언 하는 경우
>>> test3 = 'a',
>>> test3
('a',)

 

 

 


세트 (set)

  • 중복된 데이터를 허용하지 않는다.
  • 비순차 자료형, 가변 자료형
  • 인덱스로 접근 불가하다.
  • 항목들을 {} 로 감싸고 각각의 항목은 쉼표(,)로 구분한다. 
  • 수학 집합에서 다루는 교집합, 합집합, 차집합 등을 구하는데 유용
  • 집합 선언 방법 - set()
# 빈 집합 선언 방법
>>> test = set()
>>> type(test)
<class 'set'>
>>> test

 

>>> test = {'a','c','a','b','c','d','e'}

# set은 중복 된 항목 제거됨
>>> test
{'b', 'c', 'a', 'd', 'e'}

# 항목 존재 유무 확인 - True, False로 반환
>>> 'a' in test
True
>>> 1 in test
False

>>> type(test)
<class 'set'>

 

※ 빈 집합은 {}로 선언 불가하다. {}로 선언하면 딕셔너리 타입이 생성된다. 

반드시 set()을 이용해 빈 집합 선언

# 빈 집합 선언이 아닌 빈 딕셔너리가 선언
>>> test2 = {}
>>> test2
{}
>>> type(test2)
<class 'dict'>

 

 


딕셔너리 (dictionary)

  • 전체 항목이 정렬되지 않은 key와 value의 쌍으로 구성된 데이터 모음
  • 색인(index)이 아닌 특정 키(key)로 값(value)을 불러올 수 있다. 
  • 비 순차 자료형, 가변 자료형
  • 하나의 딕셔너리에 중복된 키 존재 할 수 없다. 
  • {key1:value, ... } 로 표현, 각각의 쌍은 쉼표(,)로 구분한다. 
  • 딕셔너리 선언 방법 - {} or dict()
# 빈 딕셔너리 선언 방법
>>> test = {}
>>> test
{}
>>> type(test)
<class 'dict'>

>>> test2 = dict()
>>> test2
{}
>>> type(test2)
<class 'dict'>

 

# 딕셔너리 선언
>>> test = {'a':2, 'b':3, 'c':9, 'd':4, 'e':1}

>>> test
{'a': 2, 'b': 3, 'c': 9, 'd': 4, 'e': 1}

# 인덱스로 확인 불가
>>> test[3]
Traceback (most recent call last):
  File "<pyshell#48>", line 1, in <module>
    test[3]
KeyError: 3

# 딕셔너리 key값으로 value 확인 
>>> test['c']
9

>>> type(test)
<class 'dict'>

 

>>> test
{'a': 2, 'b': 3, 'c': 9, 'd': 4, 'e': 1}
>>> test['c']
9

# 딕셔너리 값 변경
>>> test['c'] = 7
>>> test['c']
7
>>> test
{'a': 2, 'b': 3, 'c': 7, 'd': 4, 'e': 1}

댓글