반응형
python 부분집합 구하기
부분집합 개념을 쉽게 풀어보자
- 어떤 덩어리(a)가 다른 덩어리(b) 안에 포함되어 있는가?
- a={ "apple", "banana"}
- b={"apple", "banana", "orange"}
- 어떤 덩어리(a)와 다른 덩어리(b)의 교집합이 어떤 덩어리(a)와 같은가? (a의 사이즈가 더 작을 때)
python 부분집합인지 확인하기
어떤 덩어리(a)와 다른 덩어리ㅎ(b)의 교집합이 어떤 덩어리(a)와 같은가? 관점으로 접근해보겠습니다.
def check (a,b):
# 교집합 개념을 사용하기 위해 리스트인 a, b를 set 자료형으로 변경한다.
s1=set(a)
s2=set(b)
if s1 ==s1.intersection(s2) :
print("a는 b의 부분집합입니다!")
elif s2==s1.intersection(s2):
print("b는 a의 부분집합입니다")
python 부분집합 구하기
결국 [[조합 (combinations)]] 을 구하는 것입니다. 0개쌍, 1개쌍, 2개쌍 , .... n개쌍으로 이루어진 조합을 모두 구하면 됩니다. 0개쌍은 공집합을 의미합니다.
from itertools import combinations
a=[1,2,3]
result=[]
for i in range(0,len(a)+1):
c=combinations(a,i)
result.extend(c)
print(result)
#[(),(1),(2),(3),(1,2),(1,3),(2,3),(1,2,3)]
반응형
'프로그래밍 > python' 카테고리의 다른 글
[python] 리스트 인덱스 슬라이싱 (4) | 2020.01.18 |
---|---|
[python] 리스트 원소 타입 바꾸기 (map함수사용) (2) | 2020.01.16 |
[python] 리스트 원소 2개씩 비교하기 (2) | 2020.01.16 |
[python] 딕셔너리 값 기준으로 정렬하기 (4) | 2020.01.13 |
[python] 조합(combinations) 기초 & 조합 사용법 (4) | 2019.09.06 |
댓글