데이터 취업 스쿨 스터디 노트 - 자료구조 (5주차)

박해민·2024년 4월 9일

데이터 분석

목록 보기
5/8

[5주차 Study Note]

  • 자료구조

    • 데이터를 묶어 관리 (컨테이너 자료형)
    • 종류 : list[] / tuple () / scores{'~':값} / set{}
      (리스트는 아이템 변경 가능하나 튜플은 변경 불가,
      셋은 중복 데이터 허용x )
  • Index
    : 아이템에 자동 부여되는 0~ 숫자
    : 아이템 조회시 list명[숫자] 형태로 확인

  • list 길이 조회
    : len 함수 활용 ex. list명 = ~~ 정의 -> len(list명) 형태로
    ※ 이때 len 함수에 들어가는 list명은 기존 리스트의 레퍼런스(리스트) 변수임

  • list의 for문 활용
    : list = [[0, 1], [3, 4]] 일때
    for fstNum, secNum in list 구문 활용 시 자동으로 fstNum에 [0,1], secNum에 [3,4]로 인식되어 출력

  • enumerate 함수

    • enumerate 함수 사용하여 in range(len(ist 명))와 같이 아이템 열거 가능
      ex. for a, b in enumerate(list 명):
  • list에 아이템 추가하기
    (1) append() 함수 사용 <- 아이템 추가 위치 : 리스트 맨 뒤
    - ex. list명.append(아이템명)

    (2) insert() 함수 사용 <-원하는 곳에 아이템 추가
    - ex. insert(인덱스 숫자, 추가 아이템명)

  • list 내 아이템 삭제하기
    (1) pop() 함수 사용. <-리스트 내 맨뒤 아이템 삭제
    (2) pop(인수) 함수 사용. <- 리스트 내 원하는 인덱스 위치의 아이템 삭제
    (3) remove(아이템명) 함수 사용. <- 특정 위치의 아이템 삭제
    - 함수 사용 시 같은 값이 2개 이상일 경우, 리스트상 제일 앞의 값만 삭제됨
    (그 이상 제거할 경우 while문 사용)

  • list 연결 (확장)
    (1) extend(연결할 리스트명) 함수 사용 <- 리스트 a에 리스트b가 더해지는 형식
    (2) + 연산자 사용 <- a, b가 합해져 새로운 리스트 c가 만들어지는 형식

  • list 아이템 정렬
    (1) sort() 함수 사용
    - 오름차순 정렬
    (2) sort(reverse=True) 함수 사용
    - 내림차순 정렬

  • list 아이템 순서 뒤집기
    (1) reverse() 함수 사용
    - 반대로 뒤집어 정렬 (like 데칼코마니)

  • list 슬라이싱
    (1) [n:m] 사용
    - n~m까지 범위의 리스트를 별도로 출력해냄
    - 맨 처음부터 출력, or 맨 뒤까지 출력하는 경우 각각 n, m 생략해서 사용 가능
    - 음수로도 슬라이싱 가능 / 문자열도 슬라이싱 가능

    (2) [n:m, 숫자] 사용
    - n~m까지 범위의 리스트를 숫자 간격으로 출력

    (3) [슬라이싱] = [리스트 내용~] 사용
    - 할당연산자 사용 시 리스트 변경 가능 (기존 리스트 내용까지 변경됨

    (4) slice() 함수 사용

  • 기타

    • (*) 사용 : 리스트 아이템 반복 출력
    • index(아이템명) : 인덱스 값 출력
      @ index(아이템명, 범위 시작, 끝) 형태로 사용시 범위내 있는 아이템의 인덱스 값 출력
      ※ 범위 끝 값의 바로 앞까지가 범위가 됨
  • 특정 아이템 개수 알아내기

    • count(아이템명) 함수 사용
  • 특정 아이템 삭제

    • del list명[인덱스값]
  • tuple

    • 한번 선언 후 아이템 수정(extend 함수), 삭제 불가
      ※ + 연산자는 사용 가능
    • () 형태이나, 인덱스를 갖고올때는 [] 형태로 사용
  • 아이템의 존재유무 찾기

    • (if) 아이템명 in list명: <- 아이템이 있는지 확인
    • (if) 아이템명 not in list명: <- 아이템이 없는지 확인
      => 결과값 : True or False
  • 튜플은 슬라이싱으로 아이템 변경 불가
    리스트를 튜플 아이템으로 변경은 가능

  • 리스트와 튜플 변환
    :리스트와 튜플을 각각 tuple(리스트명), list(튜플명)으로 정의 시 자료형 변환 가능

  • 튜플 정렬
    (1) 3단계 (list()로 자료형 변환 -> sort()/sort(reverse=True)로 오름차순, 내림차순 정렬 -> tuple()로 자료형 변환)

    (2) sorted함수 사용
    -> 원본은 유지되나, 자동으로 새로운 리스트 자료형 반환

  • 딕셔너리

    • {'키' = 'value 값'} 형태로 선언
      ※ 키는 절대 중복 X / value는 상관없음
  • 딕셔너리 조회
    (1) 딕셔너리명{'키'} 형태로 조희 가능
    (2) 딕셔너리명.get('키값)
    @ get()dms 키값이 없어도 에러 발생 x
    => none 출력

  • 딕셔너리 추가 (딕셔너리 변경과 방법 동일)

    • 딕셔너리명['키값'] = value 형태로 사용
  • 딕셔너리 키값, value값 조회하기
    (1) key값 조회 - 딕셔너리명.keys() 사용
    (2) value값 조회 - 딕셔너리명.values() 사용
    (3) 아이템값 조회 - 딕셔너리명.items() 사용

  • 딕셔너리 삭제
    (1) del 딕셔너리명['키캆] <- 결과 반환안됨
    (2) pop()함수 사용 <- 결과 반환됨
    (3) 딕셔너리 내 모든 아이템 삭제 시 - clear() 사용

0개의 댓글