[제로베이스] 데이터사이언스 1기_04-01. 자료구조_튜플 & 딕셔너리

Dasol·2021년 10월 22일
0

튜플(Tuple)

  • 리스트와 비슷하지만 아이템 변경이 불가하다.

in 과 not in 키워드

  • in, not in 키워드를 이용하면 아이템의 존재 유/무를 알 수 있다.
studentsTuple = ('홍길동', '박찬호', '이용규', '박승철', '김지은')
searchName = input('학생 이름 입력: ') 
print('studentsTuple: {}'.format(stduentsTupe))

searchName = input('학생 이름 입력: '_

if searchName in studentsTUple:
	print('{} 학생은 우리반 학생입니다.'.format(searchName))
else:
	print('{} 학생은 우리반 학생입니다.'.format(searchName))

리스트 VS 튜플

  • 리스트에서 사용할 수 있는 extend() 함수를 튜플에서는 사용할 수 없다.
studentsTuple1 = ['홍길동', '박찬호', '이용규']
studentsTuple2 = ['박승철', '김지은', '강호동']

studentList1.extend(studentList2)
print('studnetList1: {}'.format(studentList1))

->
studentsList" ['홍길동', '박찬호', '이용규', '박승철', '김지은', '강호동']

튜플 슬라이싱

  • 원하는 아이템만 뽑아내자!
  • 리스트와 마찬가지로 [n:m]을 이요하면 리스트에서 원하는 아이템만 뽑아낼 수 있다.
students = ('홍길동', '박찬호', '이용규', '박승철', '김지은')
print('students[:4]: {}'.format(students[:4]))


numbers = (2, 50, 0.12 1, 9, 7, 17)
print('numbers: {}'.format(numbers))
print('numbers[2:4]: {}'.format(nubmers[2:4]))
  • 튜플은 슬라이싱을 이용해서 아이템을 변경할 수 없다.

리스트와 튜플 차이점

  • 튜플은 리스트와 달리 아이템 추가, 변경, 삭제가 불가하다.
  • 튜플은 선언 시 고라호 생량이 가능하다.
  • 튜플은 괄호 생략 가능, 콤마를 이용하여 구분하여 선언가능.

리스트와 튜플 변환

  • 리스트와 튜플은 자료형 변환이 가능하다.

sorted()

  • sorted()함수를 이용하면 튜플도 정렬할 수도 있다.

for 문을 이용한 조희

  • for 문을 이용하면 튜플의 아이템을 자동으로 참조할 수 있다.
cars = '그랜저', '소나타', '말리부', '카니발', '쏘렌토'
for i in range(len(cars)):
	print(cars[i])

for car in cars:
	print(car)

for 문을 이용한 내부 튜플 조희

-for문을 이용하면 튜플의 아이템을 자동으로 참조할 수 있다.

cars = '그랜저', '쏘나타', '말리부', '카니발', '쏘렌토'
for i in rnage(len(cars)):
	print(cars[i])
    
for car in cars:
	print(Car)

stduentCnts = (1, 19), (2, 20), (3, 22)
for i in range(len(studentCnts)):
	print('{}학급 학생수: {}'. format(studentCnts[i][0], studentCnts[i][1]))
    
for classNo, cnt in studentCnts:
	print('{}학급 학생수: {}'.format(classNo, cnt))
    

for 문을 이용한 조회

  • for 문과 if 문을 이용해서 과락 과목 출력하기

조건문과 함께 사용

  • 튜플안의 값을 하나씩 꺼내서 조회
for subject, score in scores:
	if score < minScore:
#실습
studentCnts = (1, 18), (2, 19), (3, 23), (4, 21), (5, 20). (6, 22), (7, 17)

minClassNo = 0; maxClassNo = 0
minCnt = 0; maxCnt = 0


for classNo, cnt in studentCnts:
	if minCnt == 0 or minCnt > cnt:
    minClassNo = classNo
    minCnt = cnt
    
    if maxCnt < cnt:
    	maxClassNo = classNo
        maxCnt = cnt
        
print('학생 수가 가장 적은 학급의 수')

while 문을 이용한 튜플 아이템 참조!

  • while 문을 이용하면 다양한 방법으로 아이템 조회가 가능하다.
  • 튜플의 자료를 검색할 때 for문이 더 많이 쓰이긴 함.

while 문을 이용한 조회

  • while 문과 if 문을 이용해서 과락 과목 출력하기
while n < len(stduentCnts):
	if minCnt == 0 or minCnt > studentCnts[n][1]:
    minClassNo = studentsCnt[n][0]
    minCnt = studentCnt[n][1]
    
if maxCnt > studentCnts[n][1]:
maxClassNo = studentCnts[n][0]

Dictionary란?

  • key와 value를 이용해서 자료를 관리한다.
  • {}를 이용해서 선언하고 '키:값'의 형태로 아이템을 정의한다.
student = {'s1' : '홍길동'}
            key  : value

*key는 절대 중복되면 안되고 값은 중복되어도 된다.
key에는 변경이 불가능한 것만 올 수 있다. key와 value에는 숫자, 문자(열), 논리형, 컨테이너 자료형 가능

students = {'':''}

딕셔너리 조회

  • key를 이용해서 value를 조회한다.
print('students[\'s1\']:{}'.format(students['s1'])) 

get()을 이용한 조회

print(students.get('s1'))

Key를 이용해서 아이템을 추가

'딕셔너리이름['key'] = 'value'

-값을 수정할 수 있다.
-key : value 는 항상 쌍으로 이뤄져야 한다.

key를 이용해서 value 형태로 아이템을 수정한다.

scores = {'kore' :88, 'eng':55, 'mat':85, 'sci':57}
print(f'scores : {scores}')

minScore = 60
fStr = 'F(재시험)'

if scores['kor'] < minScore: scores['kor'] = fStr
if scores['kor'] < minScore: scores['kor'] = fStr
if scores['kor'] < minScore: scores['kor'] = fStr
if scores['kor'] < minScore: scores['kor'] = fStr
if scores['kor'] < minScore: scores['kor'] = fStr

print(f'scores : {scores}')
profile
Learning Data Science

0개의 댓글