-
[Python] collections Counter를 이용한 합집합, 교집합, 차집합 구하기Python/Data Struc & algo 2018. 5. 13. 15:25
# 합집합
import collections lst1 = ['a','b','c','a','c','f','g'] tup1 = ('b','d','e','e','f','f','g','h','h') ct1 = collections.Counter(lst1) ct2 = collections.Counter(tup1) print(ct1+ct2) # 합집합 요소 갯수 세기 print(list((ct1+ct2).elements())) # 합집합 리스트
Counter({'f': 3, 'a': 2, 'b': 2, 'c': 2, 'g': 2, 'e': 2, 'h': 2, 'd': 1}) ['a', 'a', 'b', 'b', 'c', 'c', 'f', 'f', 'f', 'g', 'g', 'd', 'e', 'e', 'h', 'h']
# 교집합
import collections lst1 = ['a','b','c','a','c','f','g'] tup1 = ('b','d','e','e','f','f','g','h','h') ct1 = collections.Counter(lst1) ct2 = collections.Counter(tup1) print(ct1&ct2) # 교집합 요소 갯수 세기 print(list((ct1+ct2).elements())) # 교집합 리스트
Counter({'b': 1, 'f': 1, 'g': 1}) ['b', 'f', 'g']
# 차집합
import collections lst1 = ['a','b','c','a','c','f','g'] tup1 = ('b','d','e','e','f','f','g','h','h') ct1 = collections.Counter(lst1) ct2 = collections.Counter(tup1) print(ct1-ct2) # 교집합 요소 갯수 세기 print(list((ct1-ct2).elements())) # 교집합 리스트
Counter({'a': 2, 'c': 2}) ['a', 'a', 'c', 'c']
# 최대값 추출
import collections lst1 = ['a','b','c','a','c','f','g'] tup1 = ('b','d','e','e','f','f','g','h','h') ct1 = collections.Counter(lst1) ct2 = collections.Counter(tup1) print(ct1|ct2) # 유니온. (ct1과 ct2 요소를 비교하여 최대값) print(list((ct1|ct2).elements())) # 유니온
Counter({'a': 2, 'c': 2, 'f': 2, 'e': 2, 'h': 2, 'b': 1, 'g': 1, 'd': 1}) ['a', 'a', 'b', 'c', 'c', 'f', 'f', 'g', 'd', 'e', 'e', 'h', 'h']
'Python > Data Struc & algo' 카테고리의 다른 글
[Python] IIS log date Sqlite3 Memory DB and pandas DataFrame (0) 2018.05.24 [Python] collections namedtuple (이름을 가진 튜플) (0) 2018.05.19 [Python] collections deque를 이용하여 리스트의 왼쪽에 요소 추가하기 (0) 2018.05.13 [Python] To find the sum of odd numbers up to the number range of N. (파이썬 N의 수 범위까지의 홀수의 합 구하기) (0) 2018.04.22 [Python] 홀수의 정수 리스트에서 중간값 추출하기 (1) 2018.04.19 [Python] 회문 판별(palindrome) (0) 2018.04.18 프로그래머스 Lv2 - 자연수를 뒤집어 리스트로 만들기 (0) 2018.04.18 프로그래머스 Lv1 - x만큼 간격이 있는 n개의 숫자 (0) 2018.04.18