Python/Python 기초
Python - tuple & set
티멀
2021. 12. 11. 15:32
728x90
반응형
tuple
tuple과 list는 같은 개념이라고 이해하면 되지만 아래와 같은 특징들이 다르다
- list는 []를 사용하지만 tuple은 ()을 사용한다
- list는 생성 후 자유롭게 변경이 가능하고 (mutable), tuple은 생성 후 변경이 불가능한 (immutable) 변수의 집합
- 생성 후 변경이 가능한 데이터 집합: list, dictionary, set 등
- 생성 후 변경이 불가능한 데이터 집합: int, float, string, tuple, frozenset
- 변경 불가능이기 때문에 나중에 다른사람이 수정을 요구할 때 못하게 되는 보안적인 강점이 생김
- 데이터 수정을 못하기 때문에 수정에 의한 프로그래밍적인 문제점 방지 가능
t=(1,2) #tuple로 변수 선언
t
1,2
t2=(1,2,(1,2)) #tuple안의 tuple도 가능
print(t2)
print(t2[0:2])
print(t2[:][0])
(1,2,(1,2))
(1,2)
(1)
t*3 #tuple도 연산은(*,+) 가능, 다만 변경은 불가능
(1,2,1,2,1,2)
set
다른 데이터 집합과는 다르게 [], () 가 아닌 {}를 쓰는 데이터 집합
- set 데이터 생성 시 반드시 set{}로 생성을 해야 set 공집합을 생성할 수 있음
- 수학시간에 배운 집합의 개념과 동일 (합집합, 교집합, 차집합)
- 원소의 중복을 나타내지 않기 때문에 데이터 전처리에 용이함, 즉 원소의 종류를 나타내기 좋음
- 원소의 순서가 존재하지 않기 때문에 원소의 index가 없다
s={1,2,3}
s, type(s)
({1, 2, 3}, set)
s[1] # 배운대로라면 2가 나와야 정상이지만 set, 집합이기 때문에 성립되지 않음
nope!!
# 교집합 or .intersection()
s1={1,2,3,4,5}
s2={3,4,5,6,7}
s1 & s2
{3,4,5}
# 혹은 .intersection을 사용해서 교집합 가능
s1.intersection(s2)
{3,4,5}
# 합집합 or .union()
s1 | s2 # 다른 수식과는 다르게 + 가 아닌 | 이다
{1,2,3,4,5,6,7} # 다른 데이터 종류와는 다르게 겹치는 데이터는 표시하지 않는다
# 혹은 .union() 함수를 써서 합집합이 가능함
s1.union(s2) # s1의 집합에 s2를 추가하는 개념. append()의 사용과 비슷
# 차집합
s1 - s2 # s1에서 s2를 빼면 남는 변수
{1,2}
s2 - s1 #s2에서 s1을 빼는 함수이므로 값은 위와 당연히 다름
{7,8}
# set의 uniqueness 활용
L=[1,1,1,1,2,2,2,3] # 리스트에서 겹치지 않는 변수만 출력
set(L), len(set(L))
{1,2,3}, 3
# set에 원소 하나 추가
s= set()
s.add(4)
s
{4}
# set에 원소 여러개 추가
s.update({5,6,7})
{4,5,6,7}
# set에 원소 제거하기 # 하나만 제거할 수 있음, one by one
s.remove(7)
{4,5,6}
728x90
반응형