cs 3. 파이썬의 컨테이너 (집합, set, 집합 관련 함수 메서드, 튜플, Tuple) :: 맥스웰과 데자와

0. 파이썬의 컨테이너

 

  • 리스트(List) : 대괄호( '[ ]' )를 사용해서 항목을 함께 모으는 방법의 하나입니다. 배열과 비슷하게 사용되나, 배열은 아니고 객체로서 함수가 존재, 인덱스 값을 이용한 접근이 가능합니다. 어떤 것들을 묶음 또는 모음의 형태로 한꺼번에 저장합니다.
  • 딕셔너리(Dictionary) : 두 개의 항목 키(key)와 값(value)을 서로 연관시키는 방법의 하나입니다. 중괄호( '{ }' ) 사용하며 딕셔너리는 키-값 쌍의 모음입니다. 정보를 가장 빠르게 찾을 수 있지만 메모리를 많이 차지합니다.
  • 집합(Set) : 중괄호( '{ }' )를 이용해서 요소(원소)들을 함께 모으는 방법의 하나입니다. 리스트와 비슷하지만 순서 구분이 없고, 중복을 허락하지 않습니다. 이는 실제 수학에서 쓰이는 집합과 같은 성질인데, 실제로 집합에 관련된 것을 유용하게 처리하기 위해 나중에 만들어진 컨테이너입니다.
  • 튜플(Tuple) : 불변(변경할 수 없는) 리스트입니다. 리스트에 사용하는 대괄호 대신 소괄호( '( )' ) 사용합니다. 불변이기 때문에 항목을 정렬하거나 추가, 삭제하는 등의 작업을 할 수 없습니다. 특정 항목을 가지고 튜플을 만들고 나면 그대로 유지됩니다.

 

*키(key)란?

정보를 찾는 데 사용할 항목을 의미합니다. 이때, 키 값은 반드시 고유해야 합니다.

*값(value)란?

찾고자 하는 항목을 의미합니다.

 

@리스트 

gksid102.tistory.com/24

 

1. 파이썬의 컨테이너 (리스트, list, 리스트 관련 함수 메서드, range, 슬라이싱, 리스트 예시, 리스

0. 파이썬의 컨테이너 리스트(List) : 대괄호( '[ ]' )를 사용해서 항목을 함께 모으는 방법의 하나입니다. 배열과 비슷하게 사용되나, 배열은 아니고 객체로서 함수가 존재, 인덱스 값을 이용한 접

gksid102.tistory.com

@딕셔너리

gksid102.tistory.com/25

 

2. 파이썬의 컨테이너 (딕셔너리, dictionary, 딕셔너리 관련 함수 메서드, 딕셔너리 응용, items, 딕셔

0. 파이썬의 컨테이너 리스트(List) : 대괄호( '[ ]' )를 사용해서 항목을 함께 모으는 방법의 하나입니다. 배열과 비슷하게 사용되나, 배열은 아니고 객체로서 함수가 존재, 인덱스 값을 이용한

gksid102.tistory.com

 

1. 집합 선언

 

집합이름 = { 요소 } 형태로 집합을 선언할 수 있습니다. 

아래 my_set 요소에는 [ 1, 3, '딸기', '초코' ]가 있는 것을 볼 수 있는데요. 이는 my_set이라는 하나의 방 안에 각각의 요소들이 들어있는 것입니다.

 

my_set : 1              3           '딸기'          '초코'

 

주의해야 할 점은 리스트와 다르게 순서가 없습니다. (이는 수학에서 정의하는 집합의 성질과 동일합니다.) 즉 각 요소들을 인덱스로 인식하지 않기 때문에, 다음과 같은 결과를 얻을 것입니다.

 

>>> my_set [0]

TypeError : 'set' object does not support indexing

>>> my_set [1]

TypeError : 'set' object does not support indexing

>>> my_set [2]

TypeError : 'set' object does not support indexing

>>> my_set [3]

TypeError : 'set' object does not support indexing

 

 

또한 중복역시 허락하지 않습니다. (이 역시 수학에서 정의하는 집합의 성질과 동일합니다!) 따라서 다음과 같은 결과를 얻을 것입니다.

 

>>> my_set = {1, 1, 3, 3, '딸기', '초코'}

>>> my_set

{1, 3, '딸기', '초코'}

 

 

set 함수의 성질

 

 

 

2. 집합 관련 함수

 

다음은 여러 집합 관련 함수들입니다. 집합을 변경하거나 정보를 얻을 수 있습니다.

 

  • set_name.add(x) : 집합에 요소x를 하나 추가해줍니다. 리스트는 끝부분에 항목이 들어가는데 집합은 순서가 없이 들어갑니다. 또한 중복을 허락하지 않습니다.
  • len(set_name) : 집합에 들어있는 요소의 개수를 구할 때 사용합니다.
  • set_name.sort(x): 집합은 sort( )를 지원하지 않습니다.
  • set_name.remove(x) : x를 삭제하고 버립니다. 해당 항목이 어디에 있는지 몰라도 된다는 장점이 있습니다.

 

 

 

 

3. 집합 응용

 

집합은 여러 가지로 응용 가능한데요. 리스트, 딕셔너리와 마찬가지로 특히 반복문과 함께 사용될 때가 많습니다. 반복문을 이용하면 집합의 항목을 한 줄에 하나씩 출력 가능합니다. 다음은 for 반복문을 이용한 집합의 예시입니다.

 

 

-> 제가 입력한 집합 요소들의 순서와 출력된 요소들의 순서가 다른 것을 볼 수 있습니다.

 

 

또한 리스트와 반복문으로 딕셔너리를 만들었던 것 처럼, 집합 역시 만들 수 있습니다.

 

 

 

마지막으로 리스트와 마찬가지로 집합메서드에서 for 반복문과 유용하게 쓰이는 함수로 enumerate 함수가 있습니다.

enumerate의 뜻은 열거하다로, enumerate 함수는 열거형(리스트, 튜플, 집합, 문자열 등) 객체를 번호와 함께 반환하는 역할을 합니다. 

리스트에서 enumerate 함수는 리스트 항목의 인덱스에 접근해, 각각의 항목에 번호를 지정하여 출력하였습니다.

집합은 인덱싱을 하지 않으므로, 집합의 각 요소에 임의로 번호를 지정하여 출력해 줍니다.

enumerate 함수를 사용하면 집합의 요소를 알기 쉽게 파악할 수 있는 장점이 있습니다.

 

enumerate 함수는 [ enmuerae( set_name ) ] 으로 사용합니다.

for 문과 함께 사용될 때는 나타내야 할 변수가 두 개(번호, 집합요소) 이므로  

for x, y  in enumerate 로 입력해야 합니다.

 

-> 제가 입력한 집합 요소들의 순서와 enumerate함수가 반환한 요소들의 순서가 다른 것을 볼 수 있습니다.

 

 

 

4. 튜플

 

도입부에서 설명한 것 처럼, 튜플은 불변(변경할 수 없는) 리스트입니다. 불변이기 때문에 항목을 정렬하거나 추가, 삭제하는 등의 작업을 할 수 없습니다. 특정 항목을 가지고 튜플을 만들고 나면 그대로 유지됩니다.

 

튜플이름 = ( 항목 ) 형태로 선언할 수 있습니다. 

 

또한 튜플은 딕셔너리의 키(key)나 집합의 요소로 사용될 수 있지만 리스트로는 사용되지 않습니다.

 

딕셔너리의 키로 튜플 사용하기

-> 딕셔너리의 키(key)로 튜플을 사용했습니다. 참고로 리스트를 키로 사용하려고 하니 "unhashable type : list" 라고 하며 에러가 발생했습니다.

 

 

집합의 요소로 튜플 사용하기

-> 딕셔너리와 마찬가지로 에러가 발생한 것을 볼 수 있습니다.

+ Recent posts