[자료구조] Chapter01. 자료구조(튜플, 딕셔너리)

황성미·2023년 7월 20일
0
post-thumbnail
post-custom-banner

✍🏻 20일 공부 이야기.

튜플과 딕셔너리에 대해 알아보았다:)



튜플

  • 튜플 : 리스트와 비슷하지만, () 을 이용해 선언하며 아이템 변경이 불가능함.

  • 튜플의 길이(아이템 개수) : len(튜플이름)

  • 튜플의 아이템 조회 :

    1. 인덱스를 이용하는 방법 : 튜플이름[인덱스] 인덱스는 0부터 시작.

    2. in, not in을 이용하는 방법 : 찾고자하는 아이템 in 튜플이름 아이템의 존재 유/무를 알 수 있음. 문자열에서도 사용 가능.

    3. 튜플 자체에 접근하는 방법 :

      #1
      fruit = ('apple', 'banana' , 'orange')
      
      for i in range(len(fruit)):
      	print(f'{i}번째 과일 : {fruit[i]}')
      #0번째 과일 : apple
      #1번째 과일 : banana
      #2번째 과일 : orange
      #2
      fruit = ('apple', 'banana' , 'orange')
      
      for i in fruit:
          print(i)
      #apple
      #banana
      #orange
      #3
      studentsCnts = (1, 19) , (2, 13), (3, 16)
      for classNum, studentscnt in studentsCnts:
      print(f'{classNum}학급 학생수 : {studentscnt})
      #리스트와 똑같이 변수 2개를 선언하여 
      #튜플 내부에 또 다른 튜플의 아이템을 조회할 수 있음.
      #
      #변수 2개를 선언하지 않고 하나만 선언하여
      #studentsCnts[i][0], studentsCnts[i][1] 과 같이 접근할 수도 있음
  • 튜플의 아이템 변경 : ❌❌불가❌❌

  • 튜플 연결 : 튜플이름 1 + 튜플이름 2 연산자를 이용. 리스트에서 사용했던 extend()는 사용 불가.

  • 튜플 슬라이싱 :

    1. 튜플이름[n:m] 또는 튜플이름.slice(n,m)을 이용하는 방법
    2. 튜플이름[n:m:r]을 이용하여 슬라이싱 단계를 설정하는 방법
  • 튜플 정렬 :

    1. 리스트로 변환한 후, 리스트이름.sort()를 이용해 정렬하는 방법 : 튜플은 아이템 수정이 불가하므로 리스트로 변환(list(튜플이름)) -> 정렬 -> 다시 튜플로 변환(tuple(리스트이름))하는 과정을 거쳐야함.
    2. sorted(튜플이름) 함수를 이용하는 방법 : 이를 이용하면 튜플도 정렬할 수 있지만, 리스트로 반환되기 때문에 다시 꼭 튜플로 변환해주어야 함.




리스트 vs 튜플

  • 리스트는 아이템 추가, 변경, 삭제 ⭕가능⭕ / 튜플은 아이템 추가, 변경, 삭제 ❌불가❌
  • 튜플은 선언 시, 괄호 생략이 가능함.
    tuple1 = ('a', 'b', 'c')
    tuple2 = 'a', 'b', 'c'
  • 리스트와 튜플은 자료형 변환이 가능함.
    리스트 -> 튜플 : tuple(리스트이름)
    튜플 -> 리스트 : list(튜플이름)



딕셔너리

  • 딕셔너리 : 키(key)와 값(value)을 이용해 자료를 관리함. 리스트와 튜플의 인덱스 역할을 딕셔너리에선 키가 함. {}을 이용해 선언하고, '키 : 값' 의 형태로 아이템을 정의함.

  • 딕셔너리 아이템 조회 :

    dic = {'apple' : 1000, 'banana' : 2500, 'watermelon' : 20000}
    1. dic['apple']과 같이 딕셔너리이름[키] 키를 이용해 값을 조회하는 방법
    2. dic.get('apple')과 같이 딕셔너리이름.get(키)키를 이용해 값을 조회하는 방법 : 1번 방법과 달리 2번 방법은 키가 없어도 에러가 발생하지 않음.
  • 딕셔너리의 아이템 추가 : 딕셔너리이름[키] = 값 를 통해 아이템을 추가할 수 있음

  • 딕셔너리 아이템 수정 : 딕셔너리이름[키] = 값 를 통해 아이템을 수정할 수 있음

  • 전체 키(key)와 값(value) 조회 :
    조회된 값들을 list()을 이용해 리스트로도 변환하여 사용할 수 있음

    • 전체 키(key) 조회 : 딕셔너리이름.keys()
      for key in 딕셔너리이름:
      	print(key)
      #키는 .keys()를 생략해도 출력이 가능하지만
      #정확성을 위해 생략하지 않는 습관을 기르자.
    • 전체 값(value) 조회 : 딕셔너리이름.values()
    • 전체 아이템 조회 : 딕셔너리이름.items()
  • 딕셔너리 아이템 삭제 :

    1. del 딕셔너리이름[키]를 통해 삭제하는 방법
    2. 딕셔너리이름.pop(키)를 통해 삭제하는 방법
  • 딕셔너리 아이템 전체 삭제 : 딕셔너리이름.clear()

  • 딕셔너리 키 존재 유무 판단 : 키이름 in 딕셔너리이름, 키이름 not in 딕셔너리이름 이용

  • 딕셔너리 길이(아이템 개수) : len(딕셔너리이름)

profile
데이터 분석가(가 되고픈) 황성미입니다!
post-custom-banner

2개의 댓글

comment-user-thumbnail
2023년 7월 20일

유익한 글 잘 봤습니다, 감사합니다.

1개의 답글