📌 tuple
- list와 비슷하지만 아이템 변경, 삭제, 추가 불가
- () 를 이용해서 선언하고 , 로 데이터 구분
studentL = ['유태오', '이종원', '송강', '정호연', '김나영']
studentT = ('유태오', '이종원', '송강', '정호연', '김나영')
print(studentL)
print(studentT)
tuple 아이템 조회
studentT = ('유태오', '이종원', '송강', '정호연', '김나영')
numT = (10, 20, 30, 40, 50)
print(studentT[1])
print(numT[3])
in / not in
studentT = ('유태오', '이종원', '송강', '정호연', '김나영')
scName = input("이름 입력: ")
if scName in studentT:
print('{} in tuple'.format(scName))
else:
print('{} not in tuple'.format(scName))
if scName not in studentT:
print('{} not in tuple'.format(scName))
else:
print('{} in tuple'.format(scName))
tuple 길이
studentT = ('유태오', '이종원', '송강', '정호연', '김나영')
for i in range(len(studentT)):
print('i : {}'.format(i))
print('studentT[{}] : {}'.format(i, studentT[i]))
📚 튜플 결합
- 덧셈기호(+)로 두 개의 튜플 결합
- 아이템을 수정할 수 없고 새로운 튜플을 만드는 것
student1 = ('유태오', '이종원', '송강')
student2 = ('정호연', '김나영')
students = student1 + student2
print(students)
myNum = (1, 3, 5, 7, 9)
yrNum = (2, 4, 5, 8, 9, 10)
for num in yrNum:
if num not in myNum:
myNum = myNum + (num, )
print(myNum)
📚 튜플 슬라이싱
studentT = ('유태오', '이종원', '송강', '정호연', '김나영')
print(studentT[0:2])
print(studentT[:4])
print(studentT[3:])
print(studentT[1:-1])
num = (2, 50, 0.12, 1, 9, 7, 17)
print(num[2:-3])
print(num[:4])
print(num[::2])
📚 리스트 - 튜플 변환
playerScore = (9.5, 8.9, 9.2, 9.8, 8.8, 9.0)
playerScore = list(playerScore)
playerScore.sort()
playerScore.pop(0)
playerScore.pop(len(playerScore) - 1)
playerScore = tuple(playerScore)
sum = 0
avg = 0
for s in playerScore:
sum += s
avg = sum / len(playerScore)
print('total: %.2f' % sum)
print('average: %.2f' % avg)
📚 튜플 정렬
- 튜플은 수정이 불가
- 리스트로 변환 후 sort()
- sorted(): 리스트 자료형을 반환하므로 바로 적용 가능
studentT = ('유태오', '이종원', '송강', '정호연', '김나영')
srotedST = sorted(studentT)
print(srotedST)
📚 튜플과 반복문
for문을 이용한 조회(참조)
studentT = ('유태오', '이종원', '송강', '정호연', '김나영')
for student in studentT:
print(student)
minScore = 60
scores = (
('국어', 58),
('영어', 77),
('수학', 89),
('과학', 99),
('국사', 50))
for subject, score in scores:
if score < minScore:
print('과락 과목: {}, 점수: {}'.format(subject, score))
while문을 이용한 조회(참조)
cars = ('그랜저', '소나타', '말리부', '카니발', '쏘렌토')
n = 0
flag = True
while flag:
print(cars[n])
n += 1
if n == len(cars):
flag = False
minScore = 60
scores = (
('국어', 58),
('영어', 77),
('수학', 89),
('과학', 99),
('국사', 50))
n = 0
while n < len(scores):
if scores[n][1] < minScore:
print('과락 과목: {}, 점수: {}'.format(scores[n][0], scores[n][1]))
n += 1
📌 Dictionary
- 키(key)와 값(value)을 이용해 자료 관리
- 인덱스가 없고 키(key)가 인덱스를 대신하는 셈
- 키(key)는 중복되지 않아야 하고 immutable 해야 함
- {키:값}
- 숫자, 문자(열), 논리형 뿐만 아니라 컨테이너 자료형도 가능
students = {
's1':'이종원',
's2':'유태오',
's3':'김나영',
's4':['정호연', '새벽']
}
딕셔너리 조회
- key를 이용해서 value를 조회
- get(): value 조회 가능, 없는 key를 불러도 오류나지 않고 None 반환
students = {
's1':'이종원',
's2':'유태오',
's3':'김나영'
}
print(students['s1'])
print(students['s2'])
print(students['s3'])
print(students.get('s1'))
print(students.get('100'))
딕셔너리에 아이템 추가
myInfo = {}
myInfo["name"] = 'Hong'
myInfo["mail"] = 'hhhh@naver.com'
myInfo["address"] = 'Korea, Seoul'
myInfo["hobby"] = ['cooking', 'painting']
print(myInfo)
myInfo["mail"] = 'oooo@gmail.com'
print(myInfo)
📚 keys(), values()
- 전체 키와 값을 조회
- list()로 변환해 활용
myInfo = {}
myInfo["name"] = 'Hong'
myInfo["mail"] = 'hhhh@naver.com'
myInfo["address"] = 'Korea, Seoul'
myInfo["hobby"] = ['cooking', 'painting']
for key in myInfo.keys():
print(f'{key}: {myInfo[key]}')
📚 del, pop()
myInfo = {
"name":'Hong',
"mail":'hhhh@naver.com',
"address":'Korea, Seoul',
"hobby":['cooking', 'painting']
}
del myInfo['name']
print(myInfo)
returnValue = myInfo.pop('name')
print(myInfo)
print(returnValue)
📚 in, len(), clear()
in, not in
myInfo = {
"name":'Hong',
"mail":'hhhh@naver.com',
"address":'Korea, Seoul',
"hobby":['cooking', 'painting']
}
print('name' in myInfo)
print('name' not in myInfo)
len()
myInfo = {
"name":'Hong',
"mail":'hhhh@naver.com',
"address":'Korea, Seoul',
"hobby":['cooking', 'painting']
}
print('len(myInfo) : {}'.format(len(myInfo)))
clear()
myInfo = {
"name":'Hong',
"mail":'hhhh@naver.com',
"address":'Korea, Seoul',
"hobby":['cooking', 'painting']
}
myInfo.clear()
print(myInfo)