Python Tuple/Set/Dictionary

노광오·2020년 6월 4일
0

Python

목록 보기
7/13

Tuple

  • list와 거의 비슷하지만 변경 불가능(Immutable)한 특성을 가지고 있음
  • 슬라이스와 인덱싱등은 지원을 하지만 append, pop, remove등은 지원하지 않음.
    한마디로 말해 값을 가져올수 있지만 추가, 수정, 삭제가 불가능

Tuple을 사용하는 이유

1. 튜플은 리스트보다 더 적은 공간을 사용 
2.실수로 튜플의 항목이 손상될일(삭제, 변경)이 없다.
3.튜플을 딕셔너리의 키로 사용 할 수 있다.
4.함수의 인자들은 튜플로 전달된다.
5.네임드 튜플은 객체의 단순한 대안이 될 수있다.

예제를 보면 ( ) 를 하지 않아도 출력은 똑같은 tuple로 출력하는것을 보아 ( )를 사용하여 생성하는것도 맞지만 때에따라서 생략도 가능하다고 볼 수 있겠습니다.

list에서 했던것처럼 값을 추가하자 에러가 발생한다.

Tuple의 인덱싱

Tuple 곱하기

Tuple 더하기

Tuple 슬라이싱

Set

Set은 list의 친척입니다.
List와 마찬가지로 여러 다양한 타입의 요소(element)들을 저장할 수 있습니다.

Set과 List의 차이점

  • List와 다르게 요소들이 순서대로 저장되어 있지 않습니다. 즉 ordering이 없다. 그러므로 for 문에서 읽어들일때 요소들이 순서대로 나오는게 아니라 무작위 순서대로 나옵니다.
  • 순서가 없으므로 indexing도 없습니다. 몇번째 요소를 읽어들이거나 할 수 없습니다.
  • 동일한 값을 가지고 있는 요소가 1개 이상 존재 할 수 없습니다. 즉 중복된 값을 저장할 수 없습니다. 만일 새로 저장하려고 하는 요소와 동일한 값의 요소가 존재한다면 새로운 요소가 이 전 요소를 치환(replace)합니다.

Set 생성하기

set을 생성하는 법은 일반적으로 2가지가 있습니다. 중괄호 ({ }) 를 사용하는 방법과 set() 함수를 사용하는 방법 입니다.

보시다시피 set() 함수를 사용해서 set를 만들기 위해서는 list를 parameter로 전달해야 합니다.
그러므로 일반적으로 set() 함수를 사용해서 set를 만드는 경우는 list를 set로 변환하고 싶을 때 사용합니다.

앞서 말했듯이 set에서는 중복된 값은 저장이 안됩니다. 그러므로 동일한 값이 1이상 있다면 맨 나중에 저장되는 요소만 남아있게 됩니다.

Set에 새로운 요소 추가하기

List에서 새로운 요소를 추가할때는 append 함수를 사용했던거 기억나시죠?
Append 덧붙인다는 뜻을 가지고 있습니다.
List에는 어울리는 단어 입니다. 왜냐하면 list에서는 요소들이 순차적으로 더해지기 때문에 새로운 요소는 list 맨뒤에 덧붙여지기 때문입니다.
그에 비해 set는 요소들이 순차적으로 저장되지 않습니다. 그러므로 append라는 단어는 어울리지 않습니다.
그래서 set에서는 add 라는 함수를 사용해서 새로운 요소를 추가합니다.

Set에서 요소 삭제하기

Set에서 요소를 삭제할때는 remove 함수를 사용해서 삭제 합니다.

Look Up

Intersection (교집합) & Union (합집합)

Set는 교집합과 합집합을 구할때 도 사용될 수 있습니다.
교집합은 & 키워드 혹은 intersection 함수를 사용하면 됩니다.

합집합은 | 키워드 혹은 union 함수를 사용하면 됩니다.

Dictionary

  • 딕셔너리 타입은 immutable한 키(key)와 mutable한 값(value)으로 맵핑되어 있는 순서가 없는 집합입니다.
  • 일반적인 딕셔너리 타입의 모습은 중괄호로 되어 있고 키와 값이 있습니다.

  • 중괄호 { } 를 사용해 dictionary를 선언한다.
  • key 와 value 의 값으로 이루어져 있다.
    key 값이 먼저 나오고 그리고 : 이 위치하고 그 다음에 value 값이 나온다.
  • 각각의 key : value 들은 comma 로 구분한다.

예를 들어, BTS 멤버중 Rap Monster라고 하는 RM의 실명과 가명은 다음처럼 표현 할 수 있습니다.

여기에 태어난 년도도 추가해 볼까요?

Dictionary에서 요소(element) 읽어들이기

Dictionary 에서 element를 읽어 들이는 방법은 list와 유사합니다. List와 차이점은 요소의 index를 사용하는것이 아니라 key 값을 사용한다는 점입니다.

Key의 특징

  • Key 는 string 뿐만이 아니라 숫자도 가능합니다.
  • Key 값은 중복될 수 없습니다.
    (이미 존재하는 key 값이 또 추가 되면 기존의 key값의 요소를 치환하게 된다.)

위의 코드에서 dict1 은 1 이라는 동일한 key가 2번 있는것을 볼 수 있습니다. 이렇게 동일한 key가 있으면 나중에 추가된 key 의 요소가 먼저 있던 key 의 요소를 치환합니다.

Dictionary에서 새로운 요소(element) 추가하기

여기서 조심하셔야 하는 부분은, 앞서 말했듯이, 값이 동일한 key가 이미 존재하면 새로 추가되는 요소가 그 전의 요소를 치환한다는 점입니다.

Dictionary 에서 요소 수정 하기

Dictionary 에서 요소를 수정하는 방법도 list와 유사합니다. 차이점은 index가 아니라 key 값을 사용한다는 점입니다.

처음부터 비어있는 dictionary를 만든 다음에 하나 하나씩 추가해 나가는 것도 가능합니다.
비어있는 dictionary를 선언하기 위해서는 요소가 없는 중괄호를 사용하면 됩니다.

Dictionary 에서 요소 삭제 하기

역시나 Dictionary 에서 요소를 삭제하는 방법도 list와 유사합니다. 차이점은 index가 아니라 key 값을 사용한다는 점입니다.

0개의 댓글