python tuple, set

초코바나나탕수육·2021년 11월 22일
0

저번시간과 저저번시간을 통해 python의 list에 대해 알아보았다. list와 같이 데이터를 저장하게 해주는 것을 Data Structure(자료구조)라 하는데 python에는 list외에도 여러 자료구조들이 있다. 먼저 tuple에 대해 알아보자


Tuple

tuple은 list와 마찬가지로 데이터들을 저장할 때 쓰인다. 기본적으로는 list와 동일하지만 차이를 가지고 있는데

  • list는 수정이 가능하지만 tuple은 한번 선언되면 수정이 불가능

이라는 점이다.

tuple을 선언하는 문법은 다음과 같은데

champ = ("가렌", "갈리오", "갱플랭크", "나미", "나서스")

list와의 차이점이라면 대괄호 대신 일반 괄호인 소괄호를 쓴다는 점이다. 이 외의 읽어들이는 방법이라던가 slicing 방법은 list와 동일하다.

그렇다면 tuple은 왜 존재하는걸까? 그러게
tuple은 보통 2~5개 사이의 요소들을 저장할때 사용되고 즉석적으로 표현하고 싶을 때 쓰게 된다. 그래도 궁금증이 해소가 안될텐데 가장 큰 차이는 list와 tuple의 메모리 용량의 차이이다. list가 tuple에 비해 제공하는 기능이 더 많기 때문에 메모리 용량을 많이 잡아먹는 것이다. 따라서 수정이 필요없고 간단한 형태의 데이터를 표현하고 싶을 때 tuple을 이용하는 것이 더 효과적이라고 볼 수 있다 !! (개발자는 효율성이 생명이라 했던가..)


Set

이번엔 다른 자료구조인 set에 대해 알아보고자 한다. set 역시 list, tuple과 마찬가지로 여러 데이터들을 저장하게 되는데, 이 역시 차이점이 없다면 이용할 필요가 없지않은가. set이 list, tuple과의 차이점을 알아보자

  • set은 list와 다르게 데이터들이 순서대로 저장되지 않는다. 그러므로 for문에서 읽어들일때 데이터들이 순서대로 나오는게 아니라 무작위로 나오게 된다.
  • 순서가 없으므로 list에서 사용했던 index값도 없다. (몇번째 요소인지 찾기 불가능)
  • 동일한 값의 데이터가 1개 이상 존재 할 수 없다. (=중복된 데이터 저장 불가) 만일 새로 저장하려고 하는 요소와 동일한 값의 요소가 존재한다면 새로운 요소가 이 전 요소를 치환(replace)하게 된다.

차이점을 알아보았으니 set을 생성하는 법을 알아보자

champ = {"가렌", "갈리오", "갱플랭크", "나미", "나서스"}

보다시피 list는 [ ] tuple은 ( ) set은 { } 의 구조를 가지고 있다.
또한 list에서 사용했던 append와 remove 역시 사용가능하다.

set에서의 가장 중요한 점은 데이터 중복이 안된다는 것을 기억하자 !!


0개의 댓글