5. set Data Structure

set 함수는 매우 유용한 데이터구조입니다. sets 함수는 같은 값을 포함하지 않도록 분별된 리스트처럼 동작합니. 이것은 정말 많은 경우에 유용합니다. 예를 들어, 값이 중복으로 리스트에 존재하는지 확인하고 싶으면 두 가지 방법으로 확인할 수 있습니다. 하나는 for 루프 사용하는 것이고, 아래와 같이 사용합니다

some_list = ['a', 'b', 'c', 'b', 'd', 'm', 'n', 'n']

duplicates = []

for value in some_list:
    if some_list.count(value) > 1:
        if value not in duplicates:
            duplicates.append(value)

print(duplicates)
# output : ['b', 'n']

그렇지만 sets 사용하면 더 간단하고 우아한 코드가 완성됩니다. 아래와 같이 간단하게 만들 수 있습니다.

some_list = ['a', 'b', 'c', 'b', 'd', 'm', 'n', 'n']

duplicates = set([x for x in some_list if some_list.count(x) > 1])
print(duplicates)

#output: set(['b', 'n'])

Sets 는 다른 메소드들도 가지고 있습니다. 몇 가지를 소개해드리겠습니다.

Intersection(교차)

두 셋에서 중복된 것을 뽑아낼 수도 있습니다. 예를 들면:

valid = set(['yellow', 'red', 'blue', 'green', 'black'])
input_set = set(['red', 'brown'])
print(input_set.intersection(valid))
#output: set(['red'])
Difference(다름)

여러분은 위 예시에서 difference메소드를 사용해서 다른 값들을 뽑아낼 수 있습니다.
예를 들면,

valid = set(['yellow', 'red', 'blue', 'green', 'black'])
input_set = set(['red', 'brown'])
print(input_set.difference(valid))
#Output: set(['brown'])

여러분은 또한 { }를 사용해서 새로운 셋을 생성할 수도 있습니다.

a_set = {'red', 'blue', 'green'}
print(type(a_set))

#Output: <type 'set'>

이것 말고도 유용한 다른 메소드들도 는데, 공식문서를 보고 빠르게 쭉 읽어보시길 추천합니다.

results matching ""

    No results matching ""