Programming Language/Python 기본문법

[Python] 기본 문법(4): 자료구조 - 튜플, 세트

lxvxxu 2024. 7. 18. 01:28

https://thebook.io/080357/0161/

 

코딩 자율학습 나도코딩의 파이썬 입문: 5.3 튜플

더북(TheBook): (주)도서출판 길벗에서 제공하는 IT 도서 열람 서비스입니다.

thebook.io


 

튜플(tuple)

리스트에서 '읽기'에 선택과 집중을 한 '리스트의 읽기 전용 버전'이라고 보면 됨

 

※ 리스트와의 차이점

   처음 정의할 때를 제외하고 값의 변경, 추가, 삭제 등이 불가능함. 순서 변경도 불가능

    => 그러나 list보다 속도가 빠르다.

 

형식
튜플명 = (값1, 값2, ...)

 

인덱스를 통해 값에 접근할 수 있다.

print(menu[0])

 

 

변수를 여러 줄에 따로 정의하는 대신 튜플 형태로 한 줄에 여러 변수의 값을 정의할 수 있다.

(name, age, hobby) = ("피글렛", 20, "코딩")
print(name, age, hobby)


이건 튜플의 형태일 뿐 튜플은 아니라 변수들의 값을 바꿀 수 있다.

변수의 값을 빠르게 변경 가능

 

아래는 변수의 값에 변수를 입력함으로써 순서를 바꾼 예시

(depature, arrival) = ("김포", "제주")
(departure, arrival) = (arrival, departure)

 

 


 

세트(set, 집합)

형식
세트명 = {값1, 값2, . . .}
세트명 = set([값1, 값2, . . .])

 

- 중복을 허용하지 않음 ( 같은 값을 여러 번 넣어도 실제로는 한 번만 저장 )

- 데이터 순서를 보장하지 않음

    => 세트에 저장된 값을 출력하면 실행 시마다 결과가 달라진다.

 

빈 세트 생성도 ㄱㄴ

아무 값 없는 빈 세트를 만들고 나중에 값을 추가하고 싶을 때

empty_set = set()

 

add()

기존 집합에 새로운 값을 추가

python.add("피글렛")

 

list - append/insert, dictionary - 그냥 딕셔너리명[key] = value 형태로 정의하면 추가됨, 

remove()

기존 집합에 있던 값을 제거

java.remove("피글렛")

 

list - pop, dictionary - del 키워드

교집합

수학에서 집합의 성질과 같이 두 집합에서 공통 값을 뽑아내는 교집합이 있다.

세트에서도 같은 기능을 하는

  - '&' 기호

  - intersection() 함수

가 있음.

print(java & python)
print(java.intersection(python))

 

합집합

- | (파이프, pipe) 기호

- union() 함

print(java | python)
print(java.union(python))

 

 

차집합

- '-' 기호

- difference() 함수

print(java - python)
print(java.difference(python))

 

 

No. 함수 내용
1 intersection() 값 반환 여부 O
교집합
2 union() O
합집합
3 difference() O
차집합
4 add() X
세트에 데이터 추가
5 remove() X
세트에서 데이터 삭제