[Python기초]set 연습

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!


파이썬 set 연습문제


문제: A와 B 두 개의 파티가 열렸다. 파티에 참석한 사람이 다음과 같을 때 집합을 생성하고 아래와 같이 출력하시오.


set로 집합을 만들어 메소드를 사용해 해결하면 되는 문제같다. 아래 출력예시를 보고 어떤 연산을 사용해야하는지 생각해보고 똑같이 출력해보자.


  • 출력 예시:

    파티에 참석한 모든 사람
    {‘몽룡’, ‘Park’, ‘Kim’, ‘Lee’, ‘길동’}
    .———————-
    2개의 파티에 모두 참석한 사람
    {‘Park’}
    .———————-
    파티A에만 참석한 사람
    {‘Kim’, ‘Lee’}
    .—————-
    파티B에만 참석한 사람
    {‘몽룡’, ‘길동’}


partyA = {'Park', 'Kim', 'Lee'}
partyB = {'Park', '길동', '몽룡'}

# 우선 출력예시를 보고 A파티와 B파티의 참석자가 누구인지 추측해야 한다.
# 파티에 참석한 사람은 5명이고, 모든 파티에 참석한 사람은 Park 한명이다. 나머지 4명은 하나의 파티에만 참가했기 때문에 이렇게 집합을 구성했다.
# set는 딕셔너리의 중괄호 '{}'를 사용한다.
# 다른점은 key값, :, value값을 적지 않고 키값만 저장해준다고 생각하면된다.
# 집합은 중복을 허용하지 않는다. 따라서 park이 두 개의 파티에 갔어도 참석한 모든 사람의 명단에 park의 이름이 한번만 들어간다.
# 집합 내에는 따로 순서가 정해져있지는 않다. 다만, 수를 적었을 경우에는 자동으로 정렬이 된다.
partyA = set(['Park','Kim','Lee'])
partyB = set(['Park','길동','몽룡'])

# 이런식으로도 집합을 만들 수 있다.
print('파티에 참석한 모든 사람')
print(partyA.union(partyB))
print('--------------------')
print('2개의 파티에 모두 참석한 사람')
print(partyA.intersection(partyB))
print('--------------------')
print('파티A에만 참석한 사람')
print(partyA.difference(partyB))
print('--------------------')
print('파티B에만 참석한 사람')
print(partyB.difference(partyA))

# set의 메소드를 사용해야한다.

# partyA.union(partyB)는 두 집합의 요소를 합하는 것이다. partyA | partyB를 사용해도 결과는 같다. 우리가 아는 or라고 볼 수 있다. 집합은 중복을 허용치 않기 때문에 모든 참석자에 5명의 이름이 나올 것이다. 

# partyA.intersection(partyB)는 두 집합의 교집합을 구하는 것이다. partyA & partyB를 사용해도 결과는 같다. 우리가 아는 and라고 볼 수 있다. 두 집합 모두에 이름이 있는 'Park'만 출력될 것이다.

# partyA.difference(partyB)는 집합 partyA에서 집합 partyB에 있는 요소를 빼주는 차집합이다. partyA - partyB를 사용해도 결과는 같다.

# partyB.difference(partyA)는 집합 partyB에서 집합 partyA에 있는 요소를 빼주는 차집합이다. partyB - partyA를 사용해도 결과는 같다.

set함수를 공부하며 SQL 언어가 많이 생각났다. 합,교,차집합 등을 다루는 명령어가 상당히 비슷했다. 다만, 이번엔 set는 중복을 허용하지 않는다는 특성 상 SQL의 union all 같이 중복을 허용하는 것을 겪어보지 못했지만 ‘집합형 말고 다른 것에서는 비슷한 명령이 있지 않을까?’하고 생각했고, 찾아서 공부해야봐야겠다.

2022

[web]jQuery 복습 3

2 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

[web]jQuery 복습 2

11 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

[web]jQuery 복습 1

16 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

[web]JavaScript 정리4

6 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

[web]JavaScript 정리3

6 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

[web]JavaScript 정리2

6 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

[web]JavaScript 정리1

7 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

[web]CSS 기초 정리

9 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

[web]HTML 기초 정리

2 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

[Pandas]pandas 연습

3 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

맨 위로 이동 ↑

2021

[Python기초]module

1 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

맨 위로 이동 ↑