Python - tuple & set

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

'Python > Python 기초' 카테고리의 다른 글

파이썬의 수 자료형의 연산  (0) 2022.04.27
Python - dictionary  (0) 2021.12.11
Python - list ()  (0) 2021.12.09
Python - String Formatting  (0) 2021.12.07
Python - Integer & String  (0) 2021.12.07