본문 바로가기
컴퓨터공학 언어/Python

Tuple, Dictionary, Set

by KChang 2021. 10. 15.

튜플

여러 개의 요소(항목값)를 가지는 컬렉션 자료형

리스트와 달리 한 번 정해진 요소의 순서를 바꿀 수 없다.

교환 불가능

  • 튜플 내부의 객체를 변경하거나 삭제하는 것도 불가능하다는 특징을 가진다.
튜플2

튜플은 릴레이션을 구성하는 각각의 행을 의미한다.

튜플의 수를 카디널리티(Cardinality) 또는 기수라고 한다.

릴레이션 : 테이블

 

tup = (100) # 정수형 100
type(tup) # class int

tup = (100,)
type(tup) # class tuple

 

튜플의 생성

List는 대괄호 [], Tuple은 소괄호 ()

튜플은 값을 수정할 수 없으며, 읽기만 가능해 읽기 전용 자료를 저장할 때 사용

  • 튜플은 소괄호가 생략 가능하다.

튜플의 삭제

del(tt1)

del(ttl[0]) : X

 

튜플 값 변경할 때 : 튜플 -> 리스트 -> 튜플 변환

myTuple = (10,20,30)
myList = list(myTuple)  # Tuple -> List
myTuple = tuple(myList)  # List -> Tuple

 

# index() : 매개변수로 입력한 데이터와 일치하는 튜플 내 요소의 첨자를 알려준다.
# count() : 매개변수로 입력한 데이터와 일치하는 요소가 몇 개 존재하는지 센다.

a = ('abc','def','ghi')
a.index('def') # 1
a.index('jkl') # x

a = (1,100,2,100,3100)
a.count(100) # 3
a.count(0) # 0

 

딕셔너리

  • 쌍 2개가 하나로 묶인 자료구조
  • key와 value을 쌍으로 갖는 자료형
  • 키를 이용하여 값을 참조하는 특성
  • {}로 묶어 구성
  • 딕셔너리에서는 순서가 없어 생성한 순서대로 딕셔너리가 구성되어 있다는 보장이 없다.

삭제 : del 딕셔너리[키]

(존재하지 않을 시 KeyError 발생)

 

len() : 딕셔너리 내의 항목의 수를 얻기 위해 사용

in, not in : 키 값이 딕셔너리에 있는지 확인

==, != : 두 개의 딕셔너리가 동일한 항목을 가지고 있는지 확인

 

딕셔너리에서는 >, >=, <=, <와 같은 비교연산을 지원하지 않는다.

메소드하는 일

리스트의 for-in 문이 하나의 항목을 반환하는 반면 딕셔너리의 for - in 문은 항목의 키를 반환한다는 특징이 있다.

 

operator.itemgetter 모듈 : 주로 sorted와 같은 함수의 key 매개변수에 적용되어 다중 수준의 정렬을 가능하게 해주는 모듈이다.

operator.attrgetter : 리스트 요소가 클래스 객체일 경우, 해당 key를 정렬

 

세트(Set)

중복된 키는 자동으로 하나만 남음

키만 모아 놓은 딕셔너리의 특수한 형태

ex) salesList = ['삼각김밥','삼각김밥','바나나','도시락']

set(salesList) => {'도시락', '바나나', '삼각김밥'}

&(intersection) : 교집합

|(union) : 합집합

`-(difference) : 차집합

^(symmetric_difference) : 대칭 차집합

Comprehension

값이 순차적인 리스트를 한 줄로 만드는 간단한 방법

리스트 = [수식 for 항목 in range() if 조건식]

zip()

동시에 여러 리스트에 접근

두 리스트를 튜플이나 딕셔너리로 짝지을 때 zip()함수 사용

 

리스트의 복사

얕은 복사 : newList = oldList (동일한 메모리 공간 공유)

깊은 복사 : newList = oldList[:] (메모리 공간을 복사해서 새로 만듦)

 

'컴퓨터공학 언어 > Python' 카테고리의 다른 글

함수  (0) 2021.10.15
문자열  (0) 2021.10.15
List  (0) 2021.10.15
python 기초 (for문, 버그와 디버그 등)  (0) 2021.10.15
Python 기초  (0) 2021.07.21

댓글