튜플
여러 개의 요소(항목값)를 가지는 컬렉션 자료형
리스트와 달리 한 번 정해진 요소의 순서를 바꿀 수 없다.
교환 불가능
- 튜플 내부의 객체를 변경하거나 삭제하는 것도 불가능하다는 특징을 가진다.
튜플은 릴레이션을 구성하는 각각의 행을 의미한다.
튜플의 수를 카디널리티(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[:] (메모리 공간을 복사해서 새로 만듦)
댓글