ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Python] 파이썬 데이터 타입 (2)
    데이터분석/Python 2023. 3. 21. 23:51

    저번 포스팅에 이어 이번에는 리스트, 튜플, 딕셔너리, 집합에 대해 배워볼게요!

    리스트

    리스트는 값들을 모아둔 형태의 자료형입니다.

    리스트명 = [값1, 값2, 값3, ...] 와 같은 형태로 리스트를 만들 수 있습니다.

    파이썬에 있는 모든 자료형을 리스트 안에 넣을 수 있다는 특징이 있습니다.

    숫자, 문자열, 심지어 리스트 자체를 리스트 안에 넣을 수도 있습니다!

     

    앞서 문자열의 인덱싱과 슬라이싱에 대해 배웠었는데,

    리스트에서도 인덱싱과 슬라이싱이 가능합니다.

    a라는 리스트에서 인덱싱을 해봤는데요, 문자열에서 인덱싱 하는 방법과 동일하죠?

     

    인덱싱을 통해 값들의 연산을 할 수도 있습니다.

    리스트 안에 숫자형 자료들이 저장된 것이기 때문에

    연산을 하면 저장된 값들이 연산된 결과가 반환된다는 것을 확인할 수 있습니다.

     

    리스트 안에 리스트가 있는 경우에 그 내부 값에 접근하려면 어떻게 해야 할까요?

    위 그림에 보면 a[3]을 통해 a 안에 있는 리스트 ['a', 'ab', 'abc']에 접근할 수 있습니다.

    그 안에 있는 요소들에 접근하려면 인덱싱을 한 번 더 하면 됩니다.

    간단하죠?

     

    슬라이싱 하는 방법도 문자열과 리스트가 동일합니다!

    리스트 안에 리스트가 있는 경우 슬라이싱 하는 것도 한번 볼게요.

    먼저 a[3]을 통해 리스트에 접근한 뒤 슬라이싱을 하면 됩니다.

     

    리스트끼리 연산도 가능합니다.

    리스트끼리 더하면 문자열 더하기와 마찬가지로 하나의 리스트로 합쳐집니다.

    리스트에 숫자를 곱하면 그만큼 리스트를 반복한다는 의미하죠.

     

    리스트 관련 함수

    이번에는 리스트에 사용할 수 있는 다양한 함수들을 살펴볼게요.

     

    append(x)는 리스트 맨 뒤에 x를 추가하는 함수입니다.

    x 자리에는 어떤 자료형이든 다 올 수 있습니다.

     

    sort() 함수는 리스트의 값들을 순서대로 정렬할 때 사용하는 함수입니다.

    숫자는 오름차순으로, 문자는 알파벳 순서대로 정렬할 수 있습니다.

    sort() 함수 안에 reverse = True 라는 옵션을 추가해주면 내림차순으로 정렬이 가능합니다.

    reverse() 함수를 사용하면 리스트 안의 값들을 역순으로 출력해줍니다.

    위 예시를 보시면 아시겠지만 정렬 후 역순이 아니라 원래 리스트의 순서 그대로 역순으로 출력해줍니다.

     

    리스트에 새로운 값을 삽입할 때는 append() 외에도 insert(a, b) 함수를 쓸 수도 있습니다.

    리스트에서 a번째 위치에 b를 삽입하라는 의미입니다.

    값을 삭제할 때는 remove()와 pop(), del을 쓸 수 있는데,

    remove(x)는 리스트에서 맨 처음 나오는 x를 삭제해줍니다.

    pop(x)는 리스트에서 x번째 인덱스를 가진 값을 꺼내서 출력해주고 리스트에서는 삭제해줍니다.

    마지막으로 del은 인덱싱이나 슬라이싱으로 값을 삭제할 수 있습니다.

     

    튜플

    튜플도 값들을 모아둔 거라고 볼 수 있는데, 리스트와 다르게 ( )로 둘러싸인 모음입니다.

    튜플명 = (값1, 값2, ...) 와 같은 형태로 만들 수 있습니다.

    튜플의 특징으로 원소가 하나라면 뒤에 콤마가 꼭 붙어야 한다는 점이 있습니다.

    예를 들어 (1, ) 이렇게 붙는 것이죠!

    또한 리스트는 값의 생성, 삭제, 수정이 모두 가능하지만 튜플은 값을 변경할 수 없다는 특징이 있습니다.

     

    그렇다면 튜플의 값을 추가하거나 삭제하려고 하면 어떻게 될까요?

    a = (1, 2, 3) 이라는 튜플에 append 함수와 remove 함수를 사용해봤는데

    에러가 뜬 것을 볼 수 있습니다.

    이 외에 인덱싱, 슬라이싱, 연산 등은 리스트와 동일하니 자세한 설명은 생략하도록 할게요!

     

    딕셔너리

    딕셔너리는 키(key)와 값(value)을 한 쌍으로 모은 사전 형태의 자료형입니다.

    우리는 이런 사전 형태를 일상에서 굉장히 많이 살펴볼 수 있는데요.

    예를 들어, 이름: 김안나, 고향: 서울, 나이: 2X 등이 있습니다.

    파이썬에서 이렇게 대응 구조를 나타내는 자료형이 바로 딕셔너리라고 생각하시면 됩니다.

    딕셔너리명 = {key1 : value1, key2 : value2, ...} 와 같은 형태를 가지고 있습니다.

     

    딕셔너리는 순서가 없는 자료형이라는 특징이 있습니다.

    또한 key를 통해 value에 접근하기 때문에 어떤 값을 찾고 싶을 때 굉장히 유용합니다.

    key에는 문자형이나 튜플을 담을 수 있고 value에는 모든 자료형을 담을 수 있다고 합니다.

    이때 key는 고유한 값이기 때문에 중복된 값이 없도록 주의해야 합니다.

     

    예시를 통해 더 자세히 알아보겠습니다.

    4세대 걸그룹 중 제가 좋아하는 멤버와 그룹 이름을 딕셔너리 형태로 담아봤는데요,

    type() 함수를 통해 자료형을 살펴보니 딕셔너리 형태로 잘 들어간 걸 볼 수 있죠?

     

    딕셔너리에서 key들만 보고 싶을 땐 keys() 함수를 통해 볼 수 있습니다.

    마찬가지로 value들만 보고 싶을 땐 values() 함수를 사용하면 됩니다.

    key와 value를 튜플 형태로 묶어서 쌍으로 반환하고 싶다면 items() 함수를 사용합니다.

    아까 딕셔너리는 key를 통해 value에 접근한다고 했는데 예시를 보면 다음과 같습니다.

    '하니'라는 key를 인덱싱했더니 '뉴진스'라는 알맞은 value가 반환된 것을 볼 수 있습니다.

    동일한 의미로 get(x) 함수를 사용할 수도 있습니다.

    위 예시와 같은 의미로 a.get('하니') 라고 사용할 수도 있죠.

     

    딕셔너리에 요소를 추가하거나 삭제할 때도 key를 통해 추가 및 삭제할 수 있습니다.

    딕셔너리 a에 이번엔 '윈터', '에스파'를 추가해보겠습니다.

    아주 간단하죠?

    이번엔 딕셔너리 a에서 '아이사', '스테이씨'를 삭제해보겠습니다.

    del 함수를 사용해 {'아이사' : '스테이씨'}가 삭제된 것을 보실 수 있습니다.

     

    집합

    마지막으로 집합 연산자에 대해 알아보겠습니다.

    집합 자료형은 set() 으로 만들 수 있습니다.

    집합명 = {값1, 값2, 값3, ...} 와 같이 값들을 중괄호로 감싸서 만들 수 있습니다.

    집합은 순서가 없다는 특징과 중복이 허용되지 않는다는 특징이 있습니다.

    예를 들어 'HELLO'라는 문자열을 집합으로 만들면 순서도 뒤죽박죽으로 나오고 L은 한 번만 나오게 됩니다.

    집합은 순서가 없기 때문에 인덱싱이나 슬라이싱도 불가합니다.

     

    그렇다면 집합 자료형은 언제 사용하면 좋을까요?

    집합 간 교집합이나 합집합, 차집합을 구할 때 유용하게 사용할 수 있습니다.

     

    먼저 교집합을 구할 땐 & 기호를 이용하거나 intersection() 함수를 이용합니다.

    합집합은 | 기호union() 함수를 이용해 구할 수 있습니다.

    차집합은 - 기호 또는 difference() 함수를 사용해 구할 수 있습니다.


    이상으로 파이썬에서 사용되는 데이터 타입에 대해 살펴봤습니다!

    다음 포스팅에서는 변수에 대해 배워보겠습니다 😊

    '데이터분석 > Python' 카테고리의 다른 글

    [Python] 함수  (2) 2023.03.29
    [Python] 반복문 while문, for문, list comprehension  (2) 2023.03.27
    [Python] 조건문 if  (0) 2023.03.24
    [Python] 변수  (0) 2023.03.22
    [Python] 파이썬 데이터 타입 (1)  (0) 2023.03.21

    댓글

Designed by Tistory.