TIL

TIL.19 set 조작하기

codermun 2020. 10. 27. 22:44
728x90
반응형

## set 세트 만들기

## set = {값1, 값2, 값3} 구조 // 중괄호

 

a = {'strawberry''grape''orange''pineapple''cherry'}

print(a) # 매번 다름

:: {'strawberry''grape''orange', 'cherry', 'pineapple'}

## set에서는 요소의 순서가 정해져 있지 않다.

## 따라서 a를 출력할 경우 코드가 동작할때마다 매번 요소의 순서가 다르게 나온다.

 

b= {'orange''orange''cherry'}

print(b)

:: {'orange', 'cherry'}

## set에 들어가는 요소의 중복이 없다! (중복이 될 수 없다고 표현하기도한다)

## 따라서 중복값 'orange'는 두개 이상을 넣어도 실제로는 하나만 사용된다.

 

a_set = {'strawberry''grape''orange''pineapple''cherry'}

a_list  = ['strawberry''grape''orange''pineapple''cherry']

a_tuple = ('strawberry''grape''orange''pineapple''cherry')

a_dict = {'strawberry'1'grape' :2 , 'orange' : 3'pineapple' : 4'cherry' : 5 }

 print(a_set[0])       ##  error

print(a_list[0])      # 'strawberry'

print(a_tuple[0])     # 'strawberry'

print(a_dict['strawberry']) # 1 // a_dict['값']으로는 출력 불가

## set는 list, tuple, dictinoary 와 다르게 [] 인덱스 or 키 를 이용해 특정 요소를 출력할 수 없다.


## set에 특정 값이 있는지 확인하기

# 값 in 세트 / 값 not in 세트

 

a = {'strawberry''grape''orange''pineapple''cherry'}

print('orange' in a)

:: True

 

print'apple' in a)

:: False

 

print('orange' not in a)

:: False

 

print('apple' not in a)

:: True

## in 연산자를 이용해 특정값이 set에 있으면 Trur, 없으면 False 


## set를 사용하여 set 만들기

## set(반복가능한 객체)

 

a = set('apple')

print(a)

:: {'a', 'l', 'e', 'p'} # 요소 순서 계속 바뀜

g = set('문타리최고')

print(g)

:: {'문', '타', '리', '고', '최'}

## 여기서는 문자열 'apple' 중 "유일한 문자"(중복이 없는)만으로 set를 만듬

## a p p l e // P 중복

 

b = set(range(5))

print(b)

:: {0, 1, 2, 3, 4} # range에서는 요소 순서가 바뀌지 않는듯 하다

## range 등 반복가능한객체 모두 사용가능

 

c = set()

print(c)

:: set()

 

d= {}

print(d)

:: {}

print(type(d))

:: <class 'dict'>

## 빈 세트는 set에 아무것도 지정되지 않는다

## 또한 d = {} 와 같이 만들면 "빈 딕셔너리"가 만들어지므로 주의하자 (no set)

 

728x90
반응형