[Python] List / Tuples / Set / Dictionary

SangJin·2019년 11월 30일
1

python

목록 보기
1/5

python에는 여러종류의 자료구조가 있다.
공부하다가 헷갈릴거 같아서 블로그에 정리해놓으려고 한다.

1. List

list = [1,2,3,4,5]

위에 코드처럼 List는 대괄호([])로 시작하고 대괄호로 끝난다.

[1,2,3,4,5] == [2,1,3,4,5]

List는 순서가 정해져 있고 중요하기 때문에 위에 리스트 2개는 서로 다른 List이다.
순서가 정해져있기때문에

list = [1,2,3,4,5]
print(list[0])

>> 1

위에 예시처럼 index로 접근이 가능하다는게 특징이다.

2. Tuple

tuple = (1,2,3)

Tuple은 List와 비슷하지만 괄호('()')로 시작하고 끝난다.
Tuple에서 요소에 접근하는 방법은 List와 같다.

print(tuple[0])

>> 1

Tuple과 List는 서로 비슷하게 생겼지만 차이점이 존재한다.
List는 수정이 가능하지만 Tuple는 수정이 불가능하다.

그렇다면 수정이 불편한 Tuple라는 자료구조를 만들었을까??????
Tuple은 수정이 불가능 하게 만들었기 때문에 메모리를 적게 차지한다. 그러므로
Tuple은 적은 요소를 저장할때 사용되며 특정 데이터를 즉석으로 표현하고 싶을 때 사용한다.

3. Set

set = {1,2,3}

Set도 List와 비슷하지만 중괄호({})로 시작하고 끝난다.

Set를 생성하는 방법은 2가지가 있는데

set = {1,2,3}
set = set([1,2,3])

첫번째는 일반적으로 Set를 생성하는 방법이고
두번째는 set() 함수를 이용하여 set를 만든다. set()함수는 매개변수(Parameter)로 List를 받기때문에 매개변수로 List를 주어야한다.

하지만 List와 차이점도 존재한다.

  • 순서가 없다.
    순서가 없으니 index로 요소를 불러올 수 없다.
    그리고 for문으로 돌릴때 무작위로 나온다.

  • 동일한 값이 존재할 수 없다.
    만약에 동일한 값이 들어왔을 경우 제일 마지막에 들어온 값이 기존에 있던 값과 교체된다.

    set = {1,2,3,4,1}
    print(set)
    
    >> {1,2,3,4}

    Set 요소 추가

    List에서 요소를 추가할 때는 append를 썼는데 append는 ~뒤에 붙인 다는 말이다.
    하지만 Set에서는 순서가 없기 때문에 누구 뒤에 라는 말이 어울리지 않는다.
    그래서 요소를 추가할 때는 add를 사용한다.

    set = {1,2,3,4,5}
    set.add(6)
    print(set)
    
    >>{1,2,3,4,5,6}

    Set 요소 제거

    Set요소를 제거하기 위해서는 remove라는 함수를 이용하여 삭제한다.

    set = {1,2,3,4,5}
    set.remove(4)
    print(set)
    
    >> {1,2,3,5}

    Set의 교집합과 합집합

    Set는 교집합과 합집합을 구할 때도 사용할 수 있다.
    교집합은 '&' 또는 intersection함수를 사용하면 된다.

    my_set1 = {1,2,3,4,5,6,7}
    my_set2 = {5,6,7,8,9,0} 
    
    print(my_set1 & my_set2)
    >> {5,6,7}
    
    print(my_set1.intersection(my_set2))
    >> {5,6,7}

    합집합은 '|' 또는 union을 사용하면 된다.

    print(my_set1 | my_set2)
    >> {1,2,3,4,5,6,7,8,9,0}
    
    print(my_set1.union(my_set2))
    >> {1,2,3,4,5,6,7,8,9,0}

    4. Dictionary

    제목 그대로 사전이다.
    영어단어를 생각해보자

    bad : 침대
    apple : 사과
    computer : 컴퓨터

    위 처럼 영어단어에 맞는 뜻이 있다.
    이제 python관점에서 보면 영어단어는 Key, 뜻은 value이다.

    Dictionary의 형태는

    dic = {"bad" : "침대", "apple" : "사과", "computer" : "컴퓨터"}

    처럼 사용하면 된다.
    하지만 key값은 중복되면 안된다.

    요소 가져오기

    print(dic["bad"])

    Dictionary_이름["키"]
    대괄호 안에 찾고 싶은 값의 Key를 넣으면 된다.

    요소 추가하기

    dic["book"] = "책"

    Dictionary_이름["새로운 키"] = "새로운 값" 처럼 사용하면 된다.
    여기서 주의해야할점은 Dictionary는 중복이 되지 않는다.
    그래서 만약

    dic["bad"] = "나쁜"
    
    print(dic)
    
    >> {"bad" : "나쁜", "apple" : "사과", "computer" : "컴퓨터"}
    

    이처럼 중복되는 값을 추가하면 기존에 있던것에서 새로운것으로 대체된다.
    그래서 조심해서 추가해야한다.

    요소 삭제하기

    요소를 삭제하기 위해서는 del을 쓰면 된다.

    dic = {"bad" : "침대", "apple" : "사과", "computer" : "컴퓨터"}
    del dic["bad"]
    
    print(dic)
    
    >> {"apple" : "사과", "computer" : "컴퓨터"}

이처럼 python에는 여러가지 자료구조가 있었다. 잘못하면 헷갈리거같아 공부하는 겸 블로깅 해본다.
혼자 공부하면서 한거라 틀린점도 많지만 잘못된 점은 지적해주면...

감사합니다~!

profile
Developer

2개의 댓글

comment-user-thumbnail
2019년 12월 4일

파이썬의 대표적인 데이터 타입과 타입에 따른 메소드 정리가 되어서 보기 너무 좋아요!
다음 번 포스팅도 기대되어요^^

답글 달기
comment-user-thumbnail
2019년 12월 4일

제대로 이해 안하고 넘어간 부분이었는데 덕분에 제대로 이해하고 갑니다~~
다음에도 놀러올게용

답글 달기