- 리스트와 비슷하지만 아이템 변경이 불가하다.
- ‘ () ’를 이용해서 선언하고, 데이터 구분은 ‘ , ’를 이용한다
- 숫자, 문자(열), 논리형 등 모든 기본 데이터를 같이 저장할 수 있다.
- 튜플에 또 다른 컨테이너 자료형 데이터를 저장할 수도 있다.
- 튜플도 리스트와 마찬가지로 아이템에 자동으로 부여되는 번호표가 있다.
- 튜플 아이템은 인덱스를 이용해서 조회 가능하다.
- in, not in 키워드를 이용하면 아이템의 존재 유/무를 알 수 있다.
코드
students = ('홍길동', '박찬호', '이용규', '박승청', '김지은')
searchName = input('학생 이름 입력: ')
if searchName in studentsTuple:
print('{} 학생은 우리반 학생입니다.'.format(searchName)
else:
print('{} 학생은 우리반 학생이 아닙니다.'.format(searchName)
- in, not in 키워드는 문자열에서도 사용 가능하다.
wrongWrod = ('쩔었다', '짭새', '꼽사리', '먹튀', '지린', '쪼개다', '뒷담 까다')
sentence = '짭개 등장에 강도들은 모두 쩔었다. 그리고 강도 들은 지린 듯 도망갔다.'
for word in wrongWord:
if word in sentence:
print('비속어: {}'.format(word)
- 리스트와 마찬가지로, 튜플에 저장된 아이템 개수를 튜플 길이라고 한다.
- len()과 반복문을 이용하면 튜플의 아이템 조회가 가능하다.
코드
for i in range(len(students)):
print('i:{}'.format(i)
print('students[{}] : {}.format(i, students[i]))
n = 0
slength = len(students)
while n < slength:
print('n: {}'.format(n))
print('students[{}]:{}'.format(n, students[n]))
- 두 개의 튜플을 결합할 수 있다.
- 리스트와 마찬가지로 [n:m]을 이용하면 리스트에서 원하는 아이템만 뽑아낼 수 있다.
- 슬라이싱할 때 단계를 설정할 수 있다.
- 튜플은 슬라이싱을 이용해서 아이템을 변경할 수 없다.
- 리스트에 튜플 아이템으로 변경 가능하다.
- slice()함수를 이용해서 아이템을 슬라이싱할 수 있다.
- 튜플은 수정이 불가하기 때문에 리스트로 변환 후 정렬하자. list() ➔ sort() ➔ tuple()
- sorted() 함수를 이용하면 튜플도 정렬할 수 있다.
- sorted()는 리스트 자료형을 반환한다.
- for문을 이용하면 튜플의 아이템을 자동으로 참조할 수 있다.
- for문을 이용하면 튜플 내부에 또 다른 튜플의 아이템을 조회할 수도 있다.
- for문과 if문을 같이 사용.
코드
studentsCnts = (1,18), (2,19), (3,23), (4,21), (5,20), (6,22), (7,17)
sum = 0
avg = 0
for classNo, cnt in students:
print('{}학급 학생수: {}명'.format(classNo, cnt)
sum += cnt
print('전체 학생 수: {}명'.format(sum))
print('평균 학생 수: {}명'.format(sum / len(studentsCnt)))
- while문을 이용하면 다양한 방법으로 아이템 조회가 가능하다.
- while문과 if문을 같이 이용.
- 리스트에서 사용할 수 있는 extend()함수를 튜플에서는 사용할 수 없다.
- 튜플은 리스트와 달리 아이템 추가, 변경, 삭제가 불가하다.
- 튜플은 선언시 괄호 생략이 가능하다.
- 리스트와 튜플은 자료형 변환이 가능하다.
students = tuple(students) / list(students)
- 키(key)와 값(value)를 이용해서 자료를 관리한다.
- ‘{ }’를 이용해서 선언하고, ’키:값’의 형태로 아이템을 정의한다.
- 딕셔너리는 키(key)를 이용해서 값(value)을 조회한다.
- 존재하지 않는 키를 이용한 조회 시 에러(error) 발생한다.
- get(key)를 이용해서 값(value)을 조회 할 수 있다. get()은 key가 없어도 에러가 발생하지 않는다. (None)
- ‘딕셔너리이름[키(key)] = 값(value)’ 형태로 아이템을 추가한다.
- 추가 하려는 키가 이미 있다면 기존 값이 변경된다.
- ‘딕셔너리이름[키(key)] = 값(value)’ 형태로 아이템을 수정한다.
- 전체 키(key)와 값(value)를 조회할 수 있다.

- 리스트로 변환하기

- for문을 이용한 조회
for key in memInfo.keys(): print(f'{key}: {memInfo[key]}')

- del과 key를 이용한 item 삭제
코드
myInfo = {
'이름' : 'hong gildong',
'나이' : '30',
'연락처' : '010-1234-5678',
'주민등록번호' : '840202-1234567',
'주소' : '대한민국 서울',
}
deleteItems = ['연락처', '주민등록번호']
for item in deleteItems:
if item in myInfo:
del myInfo[item]
print(myInfo)
- pop()와 key를 이용한 item 삭제
코드
memInfo = {
'이름' : '홍길동',
'메일' : 'gildong@gmail.com',
'학년' : 3,
'취미' : ['농구','게임']
}
returnValue = memInfo.pop('취미')
print(f'returnValue: {returnValue})
- 키(key) 존재 유/무 판단 한다.
- 딕셔너리 길이(아이템 개수) 를 알 수 있다.
- 모든 아이템을 삭제 한다.