파이썬 기초

[ 파이썬 기초 ] 13. 튜플 & 집합

외양간찾는 새끼소 2025. 3. 6. 23:37

1. 튜플은 리스트랑 똑.같.다

튜플도 리스트처럼 여러개의 데이터를 모아두는 자료구조 입니다. 리스트랑 다르게 ()을 통해 선언합니다.

names = ("이선호", "김대호", "손콩떡")
print(names)

2. 튜플은 리스트랑 다.르.다

튜플이 리스트랑 똑같으면 왜 존재합니까… 튜플은 사실 리스트랑 엄청나게 다른점이 존재합니다. 바로 튜플은 한번 선언하면 값을 변화 시킬 수가 없어요.

리스트 처럼 추가하거나, 제거하거나, 합병하는 등 아무것도 할 수 없습니다. 이렇게 불편한 튜플이 존재하는 이유는 메모리 효율성, 무결성 과 관련있습니다.

어떤 리스트가 있는데 이 리스트는 변하면 안되는 리스트 입니다. 하지만 협업하는 동료가 그것을 몰라주고 마음대로 바꿔 버릴 수 도 있죠. 이런 불상사를 막기위해 보안에 엄격한 리스트인 튜플을 사용합니다.


3. 집합

3일간 열린 행사에서 참가자 명단을 받았습니다. 해당 명단은 사람이 입장 할때 마다 리스트에 사람 이름을 추가 한 것입니다.

  • 행사에 참여한 총 인원이 몇 명인지 구하시오.(중복 x)
participants = [
    "김민수", "이영희", "박준호", "최서연",
    "정다인", "김민수", "강태윤", "이영희",
    "황미란", "박준호", "김민수", "최서연",
    "정다인", "강태윤", "오승현", "황미란",
    "김민수", "이영희", "최서연", "오승현"
]

# 코드를 작성하세요

 

< 정답 코드 >

print(len(participants))

라고 하면 민수가 여러번 온 것을 다 따로 계산하는 꼴이 됩니다.

이런 경우 바로 집합 set() 을 사용하면 깔끔하게 구현할 수 있습니다.

print(len(set(participants)))

set() 은 중복 없이 고유값들만 저장되는 것이 특징입니다. 그리고 set에는 순서가 없습니다. 따라서 인덱스를 가지고 있지 않습니다.


4. 연습 문제

  1. 튜플(tuple)에 대한 설명으로 올바르지 않은 것은?
a) 여러 개의 데이터를 모아두는 자료구조이다.

b) 선언 시 ()를 사용한다.

c) 한번 선언하면 값을 변경할 수 있다.

d) 메모리 효율성과 데이터 무결성을 위해 사용된다.
  1. 리스트와 비교했을 때 튜플의 특징은?
a) 값을 자유롭게 추가하고 제거할 수 있다.

b) 선언 후에도 내용을 변경할 수 있다.

c) 메모리 사용이 더 비효율적이다.

d) 데이터의 변경을 허용하지 않아 보안에 더 엄격하다.
  1. 다음 중 set()의 특징으로 올바른 것은?
a) 중복된 값을 저장할 수 있다.

b) 요소들 사이에 순서가 있다.

c) 인덱스를 통해 특정 요소에 접근할 수 있다.

d) 고유한 값들만 저장되며 중복을 허용하지 않는다.