본문 바로가기

FALL in/G.MA's 파이썬

[파이썬 Containers] - 집합


집합 (Sets) 

집합은 순서가 없고, 중복되면 안된다.


>>> fruits = {'apple','orange'}  # 집합 초기화


>>> print 'apple' in fruits # fruits집합안에 'apple'이 있으면 True를 리턴.

True


>>> print 'banana' in fruits

False


>>> fruits.add('banana') # fruits집합에 banana를 추가한다.

>>> print 'banana' in fruits

True


>>> print len(fruits) # 집합의 길이 반환.

3


>>> fruits.remove('apple') # fruits집합에서 'apple'를 제거한다.

>>> print len(fruits)

2


-집합 루프(loops)

>>> fruits = {'apple','orange','banana'}

>>> for idx, fruit in enumerate(fruits):

...     print '#%d: %s' % (idx +1, fruit)

... 

#1: orange

#2: banana

#3: apple

>>> 

리스트에서는 apple -> orange -> banana 순으로 출력이 될것이지만 집합에서는 어떤 순으로 출력 될지 추측할수 없다.


- 집합의 이해

>>> from math import sqrt


>>> numbers = {int(sqrt(x)) for x in range(30)}

>>> print numbers

set([0, 1, 2, 3, 4, 5])

math라이브러리에 sqrt함수를 이용해 제곱근을 구할수있다.

0~29의 제곱근을 모두 구해 정수형으로 바꿔준후 집합에 넣어준다. 집합은 중복될수없기때문에 중복값은 사라진다.