본문 바로가기

파이썬

파이썬 - 리스트, 딕셔너리, 튜플, 집합 대충 요약

파이썬 뿐만이 아니라 여러 언어에서 리스트는 자주 사용된다. 즉 효율적인 방법이라는 뜻이다. 

 

솔직히 자세한 설명은 여러 관련 도서나 다른 사전들을 찾아보는 게 더 도움이 될 것이다. 나는 오늘 하루동안 공부하면서 햇갈렸거나 암기해야 할 것같은 부분만 따로 요약해서 적어둘 것이기 때문이다.

 

- 리스트 -

list = [] 으로 리스트를 선언한 상황이라고 가정한다.

 

list.append(a)  변수 a를 리스트에 저장한다, 단 a는 리스트의 맨 뒤에 저장된다.

(예를들면 list가 [ j , k , l , m ]인 상황일 경우 list.append(a)를 할 경우 list는 [ j , k , l , m , a ]이 된다.)

 

list.insert(int i, V ) - 이름 그대로 list 리스트의 i 번째 위치에 V(Value)를 삽입한다. 굳이 따로 설명하지 않아도 알 것이라고 생각한다. (참고로 삽입시 해당 위치의 값이 사라지지 않고 해당 위치의 값부터 한 칸씩 이동하게 됨.)

 

list.pop() - 리스트의 맨 뒤의 값을 꺼낸다. 즉 리스트 속 해당 객체를 삭제한다.

(예를 들어, list = [ 1, 2, 3, 4 ] 일 경우 V = list.pop()을 할 경우 V4가 입력되며 list는 [ 1, 2, 3 ]이 된다. - 이 정도 설명이면 충분히 이해할 거라고 생각한다.)

 

- 딕셔너리 -

딕셔너리는 key에 해당하는 value값을 저장할 수 있는 자바의 해쉬맵과 비슷하다고 볼 수 있다. ( { }(중괄호)를 사용 )

선언하는 방법은 dictionary = { key_1 : value_1, key_2 : value_2, ... , key_n : value_n } 이런 식으로 선언할 수 있다.

 

만약 key_1에 해당하는 값인 value_1을 얻어내는 방법은 내가 알고있는 선에서는 2가지 방법이 있다.

 

    #1 [ ] (대괄호) 이용

        dictionary[key_1] == value_1 

    #2 get() 메서드 이용

        dictionary.get(key_1) == value_1

 

이 두 가지 방법의 차이점은 간단하다. key 값이 딕셔너리에 존재하지 않을 경우 어떤 상황이 발생하느냐의 차이이다.     

첫 번째 방법인 [ ] (대괄호)를 이용하는 방법은, 만약 key_1 즉 key가 dictionary에 존재하지 않을 경우 오류가 발생한다. 따라서 dictionary[key_1] == value_1  이후 컴파일 아니아니 실행되어야 하는 코드가 오류 발생으로 인해 실행되지 않고 끝나게 된다.

 

두 번째 방법인 get() 메소드를 이용하는 방법은, 위와같이 key값이 존재하지 않을 경우 오류가 발생하는 것이 아닌 none 값이 반환된다. 따라서 위와는 다르게 dictionary.get(key_1) == value_1 이후 코드가 key값이 존재하지 않더라도 정상적으로 실행될 수 있도록 한다. 또한 key값이 존재하지 않을 경우 none이 아닌 다른 값이 출력되도록 할 수 있다.

dictionary.get(nonexistKey, "없는 값")으로 할 경우 "없는 값"이 출력된다. bool, int, str 등 다양한 자료형이 가능한 것으로 보인다.

 

key in dictionary - dictionary에 key가 존재할 경우 True가 반환된다. 그렇지 않을 경우는 당연히 false가 반환된다.

 

dictionary[key] = value - dictionary에 key : value를 삽입한다. 만약 key가 이미 존재할 경우 value가 업데이트된다.

 

del dictionary[key] - dictionary에 있는 key : value를 삭제한다. key가 dictionary에 존재하지 않는다면 오류가 발생한다.

 

- 튜플 -

튜플은 고정된 값이라고 생각하면 편하다. 즉 한 번 생성한 후 수정이 불가능하다. (예를들어 add() 혹은 append() 메서드를 통한 추가와 같은 그런 것이 튜플에서는 불가능하다.)

그러나 튜플의 자료형을 리스트(List)나 집합(Set)으로 변환하여 수정이 가능한 것으로 알고있다. (만약 아니라면 미안하다.)

 

tuple = ( V_1, V_2, ... , V_n ) - tuple이라는 튜플을 생성하는 방법이다.

 

- 집합 -

선언하는 방법은 2 가지이다.

set_A = { V_1, V_2, ... , V_n } 로 선언할 수 있으며, 

set_B = set( [ V_1, V_2, ... , V_n ] ) 로도 선언할 수 있다.

 

set_A & set_B - 집합 set_A와 set_B의 교집합을 구하는 방법이다.

 

set_A | set_B 또는 set_A.union(set_B) -  집합 set_A와 set_B의 합집합을 구하는 방법이다. 

 

set_A - set_B 또는 set_A.difference(set_B) - 차집합을 구하는 방법이다. 보면 알 것이라고 생각한다.

 

set_A.remove(value) - 집합에 속한 value를 제거한다.

 

'파이썬' 카테고리의 다른 글

함수 - 공부한 거 정리  (0) 2021.07.02
한 줄 for문  (0) 2021.07.02