Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- Blog
- 리눅스
- Google Analytics
- 파이썬
- Python
- 독후감
- 매틀랩
- 서평단
- MySQL
- 한빛미디어서평단
- 시각화
- tensorflow
- 통계학
- Linux
- 월간결산
- 한빛미디어
- 딥러닝
- Ga
- Pandas
- Tistory
- 티스토리
- MATLAB
- SQL
- 블로그
- 서평
- 파이썬 시각화
- matplotlib
- python visualization
- 텐서플로
- Visualization
Archives
- Today
- Total
pbj0812의 코딩 일기
[수학] python을 이용한 집합 연산하기 본문
0. 목표
- python을 이용한 집합 연산하기
1. 실습
1) 데이터 생성
- 중복 제거도 적용하기 위해 값을 중복하게 입력
a = [1, 1, 2, 3, 4, 5, 5]
b = [4, 4, 5, 6, 7, 8, 8]
2) 중복제거 함수
(1) 빈 리스트를 만들고 인풋 값이 해당 리스트에 존재하면 pass 존재하지 않으면 추가
def overlap(inp):
result = []
for i in inp:
if i in result:
pass
else:
result.append(i)
return result
(2) 테스트
- 결과 : [1, 2, 3, 4, 5]
print(overlap(a))
3) 합집합 함수
(1) 두 리스트를 받아 더하고, 중복을 제거
def union(list1, list2):
tmp = list1 + list2
result = overlap(tmp)
return result
(2) 테스트
- 결과 : [1, 2, 3, 4, 5, 6, 7, 8]
print(union(a, b))
4) 교집합 함수
(1) 원소의 수가 작은 쪽을 기준으로 삼기 위해 길이로 비교 이후 중복제거 함수 반대로 적용
def intersection(list1, list2):
result = []
# 연산 효율 증대
if len(list1) >= len(list2):
tmp = list1
tmp2 = list2
else:
tmp = list2
tmp2 = list1
for i in tmp:
if i in tmp2:
result.append(i)
else:
pass
# 중복제거
result2 = overlap(result)
return result2
(2) 테스트
- 결과 : [4, 5]
print(intersection(a, b))
5) 차집합 함수
(1) 왼쪽 리스트의 원소가 오른쪽에 없을 경우 빈 리스트에 추가
def difference(list1, list2):
result = []
for i in list1:
if i in list2:
pass
else:
result.append(i)
# 중복제거
result2 = overlap(result)
return result2
(2) 테스트
- 결과 : [1, 2, 3]
print(difference(a, b))
2. set을 이용한 계산
1) 데이터 생성
a2 = {1, 1, 2, 3, 4, 5, 5}
b2 = {4, 4, 5, 6, 7, 8, 8}
2) 합집합
- 결과 : {1, 2, 3, 4, 5, 6, 7, 8}
print(a2.union(b2))
3) 교집합
- 결과 : {4, 5}
print(a2.intersection(b2))
4) 차집합
- 결과 : {1, 2, 3}
print(a2.difference(b2))
3. 참고
- 집합 자료형
'Science > 수학' 카테고리의 다른 글
[수학] python으로 최대공약수, 최소공배수 구하기(사람처럼 생각하기) (0) | 2020.09.25 |
---|---|
[수학] python을 이용한 파스칼의 삼각형 구현 (0) | 2020.09.23 |
[수학] 최단 연결법 계산을 통한 덴드로그램 그리기 (0) | 2020.09.08 |
[수학] python으로 유클리드 거리 계산하기 (0) | 2020.09.07 |
[수학] 가우스 조던 소거법을 통한 연립방정식 계산(python) (0) | 2020.09.04 |
Comments