✏️데이터 취업 스쿨 스터디 노트(자료구조 ①)

Cheon Bumin·2023년 12월 6일

Study Note✏️

목록 보기
3/17

자료구조

  • 자료구조
  • 리스트
  • 튜플

오늘 공부 요약짤...🥲

📌공부 내용

자료구조

  • 컨테이너 자료형 : 여러 개의 데이터가 묶여있는 자료형
  • 자료구조 : 컨테이너 자료형의 데이터 구조
  • 종류 : 리스트(List), 튜플(Tuple), 딕셔너리(Dic), 셋트(Set)
    • 리스트 : 자유로운 데이터 수정 가능
    • 튜플 : 리스트와 거의 비슷, 데이터가 정해지면 수정 및 교체 불가
    • 딕셔너리 : 키밸류로 이루어짐, 키 값이 있고 키 값에 해당하는
      밸류 값으로 자료가 이루어져 있음
    • 셋트 : 리스트와 튜플과 비슷하지만 중복 데이터가 허용되지 않음
      (동명이인 허용 안됨)

리스트

  • 배열과 같이 여러 개의 데이터를 나열한 자료구조
  • 컨텐이너 자료구조 중 가장 대표적인 형태
  • 단순 데이터를 나열한 자료구조
  • 요소, 아이템, 엘리먼트 라고 데이터를 말한다.
  • 모든 데이터를 리스트에 저장할 수 있다.
  • 리스트(컨테이너를 담고 있는 변수)는 보통 복수형으로 사용
  • 인덱스 : 아이템에 자동으로 부여되는 번호표

리스트와 자주 쓰이는 함수

  • 아이템 조회 : 리스트 + 대괄호 + 순서

    • 해석 : 리스트 속 순서에 있는 아이템을 불러주세요
  • 아이템 개수(길이) : len()

    • len()과 반복문을 이용하면 리스트의 아이템 조회 가능!
    • in 뒤에는 range 뿐만 아니라 반복이 가능한 객체면 어떤 거라도 상관 없음
  • 중첩 리스트 속 아이템 활용 방법 ▼

  • 아이템 열거 함수 : enumerate()

  • 리스트에 아이템 추가 : append() / insert()

    • append : 리스트 마지막에 아이템 추가
    • insert : 리스트 내 원하는 인덱스에 아이템 추가
  • 리스트에서 아이템 삭제 : pop() / remove()

    • pop() : 리스트 마지막에 아이템 삭제, 괄호 안에 숫자를 넣으면 해당 인덱스 아이템 삭제 가능

    • remove : 괄호 안에 있는 아이템을 삭제, 동명이인 삭제 안됨

    • del 리스트 [인덱스] ← 슬라이싱 기능 사용 가능

  • 리스트 연결 : extend()

  • 아이템 정렬 : sort() / sort(reverse=True)

  • 리스트 순서 뒤집기 : reverse()

  • 특정 아이템 추출 : [n:m] / slice()

  • 아이템 위치 찾기(아이템 인덱스 찾기) : index(item)

  • 특정 아이템 개수 파악 : count(아이템)

  • 특정 아이템

튜플

  • 리스트와 비슷하지만 아이템 변경이 불가
  • 소괄호를 사용

in / not in 키워드

  • in : 특정 아이템이 있다 (있으면 True / 없으면 False)
  • not in : 특정 아이템이 없다 (없으면 True / 있으면 False)
  • 문자열 검색 기능으로도 사용 가능 (그 단어가 있는지 없는지)

📑파이썬 코드 살펴보기

중첩 리스트 ①

students = [[1, 18],
            [2, 19],
            [3, 23],
            [4, 21],
            [5, 20],
            [6, 22],
            [7, 17]]
stuSum = 0

for classN, stuCnt in students :
    print('{}반 학생 수 : {}'. format(classN, stuCnt))
    stuSum += stuCnt

print('전체 학생 수 : {}'. format(stuSum))
print('평균 학생 수 : {}'. format(stuSum/len(students)))
⭐
- classN : 중첩 리스트 중 0번째 아이템 변수
- stuCnt : 중첩 리스트 중 1번째 아이템 변수

중첩 리스트 ②

students = [[1, 18], [2, 19], [3, 23], [4, 21], [5, 20], [6, 22], [7, 17]]
minstudent = 0
minclass = 0
maxstudent = 0
masclass = 0

for classN, studentN in students :
    if classN == 1 :
        minstudent = studentN
        maxstudent = studentN
        continue

    if studentN < minstudent :
        minstudent = studentN
        minclass = classN

    elif studentN > maxstudent :
        maxstudent = studentN
        masclass = classN

print('학생 수가 가장 적은 학급 : {}반 {}명'. format(minclass, minstudent))
print('학생 수가 가장 많은 학급 : {}반 {}명'. format(masclass, maxstudent))
⭐
- min/max student = 0 : 반복문에서 얻은 학생수를 보관하기 위한 변수
- min/max class = 0 : 반복문에서 얻은 학급을 보관하기 위한 변수
- for 반복문을 통해 students 리스트 속 아이템 반복
- if 조건문을 통해 학급수가 많고 적은 반을 찾음

아이템의 위치를 찾는 index 함수

import random

sampleList = random.sample(range(1, 11), 10)

selectIdx = int(input('숫자 7의 위치 입력 : '))
searchIdx = sampleList.index(7)

if selectIdx == searchIdx :
    print('빙고!!')

else :
    print('ㅠㅠ')

print('sampleList : {}'. format(sampleList))
print('searchIdx : {}'. format(searchIdx))
⭐
- 랜덤 모듈을 통해 1부터 10까지 난수 10개를 무작위로 선택
- sampleList.index(7) : sampleList 속 인덱스 7의 아이템이 무엇인지 찾음

하루 공부를 마치며🔥

  • 오늘 학습 시간 : 8시간
  • 일단 열심히 하자만 생각하고 학습
profile
포기만 하지 말자

0개의 댓글