자료구조_1

YJ·2023년 3월 17일

▷ 오늘 학습 내용: 자료구조 강의(1~2)

01_자료구조란?

  • 컨테이너 자료형: 여러 개의 데이터가 묶여있는 자료형
  • 자료구조: 컨테이너 자료형의 데이터 구조
  • 파이썬의 대표적인 컨테이너 자료형
    리스트(List), 튜플(Tuple), 딕셔너리(Dic), 셋트(Set)
  • 튜플 → 한 번 정해진 데이터는 변경 불가
  • 셋트 → 중복된 데이터는 하나의 데이터로 출력됨

02_리스트(List)

  • 리스트: 배열과 같이 여러 개의 데이터를 나열한 자료구조
  • '[ ]'를 이용해서 선언하고, 데이터 구분은 ','를 이용
  • 숫자, 문자(열), 논리형 등 모든 기본 데이터를 같이 저장할 수 있다.
  • 리스트에 또 다른 컨테이너 자료형 데이터를 저장할 수 있다.

03_리스트 아이템 조회

  • 인덱스: 아이템에 자동으로 부여되는 번호표
  • 리스트 아이템은 인덱스를 이용해서 조회할 수 있음

04_리스트 길이

리스트 길이: 리스트에 저장된 아이템의 개수

  • len()과 반복문을 이용하여 리스트의 아이템 조회하기
    students = ['홍길동', '박찬호', '박승철', '김지은']
    
    #1
    for i in range(len(students)):
        print(students[i])
        
    #2
    n=0
    while n < len(students):
    	print(students[n])
        
    #3
    for item in students:
    	print(item)

05_리스트와 for문

  • for문을 이용하면 리스트의 아이템을 자동으로 참조할 수 있다.
  • 리스트 내부의 또 다른 리스트의 아이템을 조회할 수도 있다.
	# 학급별로 학생 수 구하기
    studentCnts = [[1,19], [2,20], [3,22], [4,18], [5,21]]

    for i in range(len(studentCnts)):
        print('{}학급 {}명'.format(studentCnts[i][0], studentCnts[i][1])
        
    for classNo, cnt in studentCnts:
        print('{}학급 {}명'.format(classNo, cnt))


    # 과락 과목 구하기    
    minScore = 60
    scores [['국어', 58], ['영어', 77], ['수학', 89]]

    #1
    for item in scores:
        if item[1] < minScore:
            print('과락 과목: {}, 점수: {}'.format(item[0], item[1]))

    #2
    for subject, score in scores:
        if score < minScore:
            print('과락 과목: {}, 점수: {}'.format(subject, score))

    #3
    for subject, score in scores:
        if score >= minScore:
            continue
        print('과락 과목: {}, 점수: {}'.format(subject, score))

06_리스트와 while문

  • while문을 이용하여 다양한 방법으로 아이템 조회하기
    studentCnts = [[1,18], [2,19], [3,23], [4,21], [5,20]]

    #1
    n = 0
    while n < len(studentCnts):
        print(studentCnts[n])
        n += 1

    #2
    n = 0; flag = True
    while flag:
        print(studentCnts[n])
        n += 1

        if n == len(studentCnts):
            flag = False

    #3
    n = 0
    while True:
        print(studentCnts[n])
        n += 1

        if n == len(studentCnts[n]):
            break
            
            
    # 과락 과목 구하기    
    minScore = 60
    scores [['국어', 58], ['영어', 77], ['수학', 89]]

    #1
    n=0
    while n < len(scores):
        if scores[n][1] < minScore:
            print('과락: {}({}점)'.format(scores[n][0], scores[n][1]))
        n+=1

    #2
    n=0
    while n < len(scores):
        if scores[n][1] >= minScore:
            n+=1
            continue
            
        print('과락: {}({}점)'.format(scores[n][0], scores[n][1]))
        n+=1

07_enumerate()함수

enumerate() 함수를 이용하여 아이템을 열거할 수 있다.
문자열에도 적용할 수 있다.

    sports = ['농구', '축구', '야구', '배구']

    for idx, value in enumerate(sports):
        print('{} : {}'.format(idx, value))
        
    # 문자열에 적용하기  
    
    str = '오늘 날씨가 좋습니다.'
    
    for idx, value in enumerate(str):
    	print('{} : {}'.format(idx, value))

📝 파이썬 초급, 중급 강의를 들으면서 리스트, 딕셔너리 등 자료구조에 대해 궁금한 점이 많았는데 예전에 찾아본 내용보다 훨씬 더 많은 개념들이 있었다. 코드만 보고 이해하는거랑 직접 해보는거랑 다르다는 것을 또 느꼈고 강의 계속 듣다보면 이전꺼 복습 할 시간이 많이 없다😢

▷ 내일 학습 계획: 자료구조 강의(3~4)

[이 글은 제로베이스 데이터 취업 스쿨의 강의 자료 일부를 발췌하여 작성되었습니다.]

0개의 댓글