Python 자료구조

박효상·2023년 1월 1일
0

Python

목록 보기
2/2
post-thumbnail

Python 주요 자료구조

  • List
  • Dictionary
  • Set
  • Tuple

List

  • 타 프로그래밍 언어에서 Array로 불리는 배열 구조
  • 순차적으로 데이터를 저장해서 사용하는 자료구조
  • 자바스크립트처럼 리스트 내 요소들의 데이터 타입은 통일될 필요 x
  • [] 대괄호 사용
  • 메서드
    • subway = [20, 10, 30], school = ["민사고", "경기고"]
    • List 끝에 요소 추가
      • subway.append(50) # subway = [20, 10, 30, 50]
    • List 끝에 요소 제거
      • subway.pop() # subway = [20, 10]
    • List 특정 index에 요소 추가
      • subway.insert(15, 1) # subway = [20, 15, 10, 30]
    • List 내 해당 요소 개수
      • subway.count(10) # return 1
    • List 오름차순 정렬
      • subway.sort() # subway = [10, 20, 30]
    • List 내림차순 정렬
      • subway.sort(reverse=True) # subway = [30, 20, 10]
    • List 모든 요소 제거
      • subway.clear() # subway = []

Dictionary

  • key-value 쌍의 정렬되지 않은 집합체
    • 마치 가게 이름과 전화번호로 이뤄진 전화번호부 같은 구조
  • key 값으로 문자열도 가능
  • {} 중괄호 사용
  • 사용 방식
    • cabinet = {3:'유재석', 100:'김태호'}
    • 요소 접근
      • cabinet[3] # return '유재석'
      • cabinet.get(3) # return '유재석'
      • cabinet.get(5) # return None
    • 요소 잘못 접근시 에러
      • cabinet[5] # return Error
    • 요소 추가
      • cabinet[5] = '김종국' # cabinet = {3:'유재석', 100:'김태호', 5:'김종국'}
    • 요소 value 값 수정
      • cabinet[3] = '김종국' # cabinet = {3:'김종국', 100:'김태호'}
    • 요소 전체 key 값
      • cabinet.keys() # return dict_keys([3, 100])
    • 요소 전체 value 값
      • cabinet.values() # return dict_values(['유재석', '김태호'])
    • 요소 전체 key-value 쌍
      • cabinet.items() # return dict_items([3, '유재석'], [100, '김태호'])

Set

  • List와 비슷하지만 요소 중복 및 순서 x
  • {} 중괄호 사용
  • 사용 방식
    • my_set = {1, 2, 3, 3, 3}, Java = {'유재석', '김태호', '양세형'}, Python = {'유재석', '박명수'}
    • 자동 중복 요소 제거
      • print(my_set) # return {1, 2, 3}
    • 교집합
      • print(Java & Python) # return {'유재석'}
      • print(Java.intersection(Python)) # return {'유재석'}
    • 합집합
      • print(Java | Python) # return {'김태호', '박명수', '유재석', '양세형'}
      • print(Java.union(Python)) # return {'김태호', '박명수', '유재석', '양세형'}
    • 차집합
      • print(Java - Python) # return {'김태호', '양세형'}
      • print(Java.difference(Python)) # return {'김태호', '양세형'}
    • 요소 삽입
      • my_set.add(4) # my_set = {1, 2, 3, 4}
      • my_set.remove(2) # my_set = {1, 3}

Tuple

  • List와 비슷하지만 추가, 변경 불가능하며 속도가 빠름
  • 변경되지 않는 목록에 사용
  • () 소괄호 사용
  • 사용 방식
    • menu = ('치킨', '피자'), name = '김종국', age = 30, hobby = '코딩'
    • menu[0] # return '치킨'
    • (name, age, hobby) # ('김종국', 30, '코딩')
profile
집념의 백엔드 개발자

0개의 댓글