Base/Python

[Python] 파이썬 기초 5 - 집합(set)에 대한 정의와 기본적인 함수 사용법

반응형

#집합

집합(set)은 파이썬 2.3부터 지원하기 시작한 자료형으로, 집합에 관련된 것을 쉽게 처리하기 위해 만든 자료형이다.

 

특징


# 순서 x, 중복 X
# set()
# {value, value, ~~~}

 

#선언

temp = set()
print(type(temp)) # <class 'set'>

temp = {'jslim', 'teacher'}
print(temp) # {'jslim', 'teacher'}

# b = set(1,2,3,4,5) - 이렇게 하면 tuple 형식이기 때문에 오류가난다.
# print(type(b))

b = set([1, 2, 3, 4, 5])
print(type(b), b) # <class 'set'> {1, 2, 3, 4, 5}

c = set([1, 3.14, 'pen', True])
print(c) # {1, 3.14, 'pen'}



# 형 변환

t = tuple(c)
print('casting -', list(t)) # casting - [1, 3.14, 'pen']

print('casting -', t, t[1:2]) # casting - (1, 3.14, 'pen') (3.14,)


# 교집합 &

s1 = set([1, 2, 3, 4, 5, 6])
s2 = set([4, 4, 6, 7, 8, 9])

print('& -', s1 & s2) # & - {4, 6}
print('& -', s1.intersection(s2)) # & - {4, 6}


# 합집합 | , union()

print('| -', s1 | s2) # | - {1, 2, 3, 4, 5, 6, 7, 8, 9}
print('| -', s1.union(s2)) # | - {1, 2, 3, 4, 5, 6, 7, 8, 9}



# 차집합 - , difference()

print(', -', s1 - s2) # , - {1, 2, 3, 5}
print(', -', s1.difference(s2)) # | - {1, 2, 3, 4, 5, 6, 7, 8, 9}



# add() 추가하는 함수

s1.add(7)
print(s1) # {1, 2, 3, 4, 5, 6, 7}

# 중복은 안된다.

s1.add(6)
print(s1) # {1, 2, 3, 4, 5, 6, 7}



# remove, discard - 삭제하는 함수

# s1.remove(9) - 없는 값을 넣으면 에러가 난다
s1.discard(9)
print(s1)



# 중복제거로 사용 가능하다.

gender = ['남', '여', '남', '여', '남', '여', '남', '여']
print(gender) # ['남', '여', '남', '여', '남', '여', '남', '여']
sgender = set(gender)
print(sgender) # {'여', '남'}
lgender = list(sgender)
print(lgender) # ['여', '남']

s1 = set([1, 2, 3, 4, 5, 6])
print(dir(s1))

for idx in s1:
print(idx, end=" ") # 1 2 3 4 5 6

 

반응형