Coding Diary.

(파이썬) 데이터 구조 유형 중 튜플(tuple)과 세트(set) 개념 쉽게 알아보기 본문

Coding/Python

(파이썬) 데이터 구조 유형 중 튜플(tuple)과 세트(set) 개념 쉽게 알아보기

life-of-nomad 2024. 6. 5. 12:35
728x90
반응형
저번 글에서는 데이터 구조 유형 중 리스트에 대해 알아보았습니다. 
이번 글에서는 튜플과 세트에 대해 알아보겠습니다. 

 

🔻(참고)리스트🔻

 

(파이썬) 데이터 구조의 유형 중 가장 많이 쓰이는 리스트 총정리

1. 데이터 구조데이터 구조란 다양한 방식으로 데이터 유형들을 모아 조직하고 그룹화하는 데이터 컨테니어 혹은 데이터 컬렉션입니다.데이터가 담긴 파일들을 정리해 놓은 파일 폴더라고 볼

life-of-nomad.tistory.com

1. 튜플(tuples)

  • 튜플은 순서가 있는 변형가능하지 않는(immutable) 요소들을 담는 데이터 유형입니다.
  • 튜플은 흔히 서로 관련이 있는 정보들을 저장하는데 사용됩니다.
  • 예를 들어 위도와 경도가 있습니다.
location = (13.4125, 103.866667)
print("Latitude:", location[0])
print("Longitude:", locaton[1])

>>> Latitude:13.4125
    Longitude:103.866667
  • 튜플은 인덱스를 사용하여 액세스할 수 있는 순서가 있는 객체 컬렉션을 저장한다는 점에서 리스트와 비슷합니다.
  • 하지만 리스트와 달리, 튜플은 immutable(변형가능하지 않는) 합니다.
  • 즉 튜플에서 항목을 삭제 또는 추가하거나 원본 튜플을 정렬할 수 없습니다.
  • 튜플은 다수의 변수들을 간단하게 할당하기 위해서도 사용할 수 있습니다.
dimensions = 52, 40, 100
length, width, height = dimensions
print("The dimensions are {} x {} x {}".format(length, width, height))

>>> The dimensions are 52 x 40 x 100.
  • 튜플을 정의할 때 괄호는 선택사항이고 프로그래머들은 코드를 명확히 작성하기 위해 꼭 필요한 경우를 제외하고는 흔히 괄호를 생략합니다.
  • 두 번째 줄에서 튜플 차원의 콘텐츠로부터 3개의 변수가 할당되었습니다.
  • 이를 튜플 언패킹(tuple unpacking) 이라고 부릅니다.
  • 튜플 언패킹을 사용하면 다수의 변수에 하나씩 액세스하고 여러 개의 할당문을 작성할 필요 없이 튜플로부터 정보를 할당할 수 있습니다.
  • 위의 예시에서 직접적으로 dimensions을 사용할 필요가 없다면, 두 줄의 코드를 3개의 변수에 한 번에 할당하는 한 줄의 코드로 줄일 수 있습니다.
length, width, height = 52, 40, 100
print("The dimensions are {} x {} x {}".format(length, width, height))

 

 

2. 세트(set)

  • 세트는 고유하고 변형가능한(mutable) 요소들로 된 순서가 없는 컬렉션에 사용되는 데이터 유형입니다.
  • 리스트에서 중복값을 빠르게 삭제하려고 할 때 세트를 사용하면 편리합니다.
numbers = [1, 2, 6, 3, 1, 1, 6]
unique_nums = set(numbers)
print(unique_nums)

>>> {1, 2, 3, 6}
  • 예를 들어, 본인이 인기 검색 엔진을 운영하고 있으며 사용자가 어디에서 검색하는지 알아보기 위해 사용자를 조사했다고 가정하겠습니다.
  • 785개의 응답을 수집했고 그 응답들을 국가 목록으로 모았고, 국가 목록에 중복 항목이 있다고 해봅시다.
  • 처음 몇 개의 요소를 보기 위해 목록을 세분화하면 이를 확인할 수 있습니다.
countries = ['Angola', 'Maldives', 'India', 'United States', 'India', 'Denmark', 'Sweden', 'Ghana', ... 777 more countries not displayed]
print(len(countries))
print(countres[:5])

>>> 785
['Angola', 'Maldives', 'India', 'United States', 'India']
  • 여기서 중복을 제거하여 사용자가 탐색하는 모든 국가의 목록을 생성하는 것이 유용합니다.
  • 그것이 파이썬에서 세트의 역할입니다. 
  • 세트는 특별한 순서가 없는 고유한 요소의 컨테이너입니다.
  • 아래와 같이 세트를 만들 수 있습니다.
countries = ['Angola', 'Maldives', 'India', 'United States', 'India', 'Denmark', 'Sweden', 'Ghana', ... 777 more countries not displayed]

country_set = set(countries)
print(len(country_set))

>>> 196
  • 세트는 중복을 제거하고 고유값 196을 출력합니다. 
  • 리스트와 마찬가지로 in 연산자를 지원합니다. 
  • 리스트와 비슷하게 add 메소드를 사용하여 세트에 요소를 추가하고 pop 메소드를 사용하여 요소를 삭제할 수 있습니다.
  • 하지만 pop 을 사용하여 세트에서 요소를 삭제하면 무작위로 요소가 삭제됩니다. 
  • 세트는 리스트와 달리 순서가 없기 때문에 마지막 요소가 없기 때문입니다.
# 세트 정의하기
fruit = {"apple", "banana", "orange", "grapefruit"}

# 요소 확인하기
print("watermelon" in fruit)
>>> False

# 요소 추가하기
fruit.add("watermelon")
print(fruit)
>>> {'grapefruit', 'orange', 'watermelon', 'banana', 'apple'}

# 랜덤으로 제거하기
print(fruit.pop())
>>> grapefruit

print(fruit)
>>> {'orange', 'watermelon', 'banana', 'apple'}
  • 세트를 이용하여 수행할 수 있는 다른 연산에는 수학 집합 연산이 있습니다.
  • union, intersection, difference 같은 메소드로 쉽게 집합 연산을 할 수 있고 다른 컨테이너 연산자들보다 훨씬 빠릅니다.

 

728x90
반응형