<jupyter_start><jupyter_text>숫자버전<jupyter_code>b1 = [1, 2, 3, 4, 5, 9, 11, 15]
b2 = [5, 4, 6 ,7, 8, 8]

list( set(b1).intersection(b2) ) #교집합
list( set().union(b1, b2) ) #합집합
list( set( b1 + b2) ) # 합집합 다른 버전
list( set(b1).difference(b2) ) #차집합
list( set(b1).symmetric_difference(b2) ) #대칭 차집합<jupyter_output><empty_output><jupyter_text>함수버전<jupyter_code># 두 리스트가 주어졌을 때, 해당되는 리스트에서 교집합이 있으면 
# 해당되는 것을 리스트 형태로 반환하는 함수

def intersection(list1, list2):
    list3 = [value for value in list1 if value in list2]
    return list3

intersection(b1, b2) # 함수버전 교집합
b3 = intersection(b1, b2)
' '.join( [str(i) for i in b3]) 
def diff (list1, list2):
    list3 = [value for value in list1 if value not in list2]
    return list3

diff(b1, b2) #함수버전 차집합
diff(b2, b1) #단 이렇게 하면 중복되는 것이 제거가 되지 않음
list( set( diff(b2, b1) ) ) # 고유한 것만 남겨주는 set를 이용한 뒤, 리스트를 통해 다시 리스트로 만들면 됨
list( set( diff(b1, b2) + diff(b2, b1) ) ) #대칭 차집합은 굳이 함수를 만들지 않아도 간단히 가능하다.<jupyter_output><empty_output><jupyter_text>문자 버전<jupyter_code>c1 = ['abc', 'edb', 'aacc', 'e', 'ed', 'ed']
c2 = ['abc', 'etc', 'fdc', 'c', 'e']

list( set(c1).intersection(c2) )
list( set().union(c1, c2) )
list( set( c1 + c2 ) )
intersection(c1, c2)
c3 = list( set(c1).intersection(c2) )
' '.join(c3)
diff(c1, c2)<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.17394695787831513, 'fraction_numerical': 0.056162246489859596, 'mean_word_length': 4.482905982905983, 'pattern_counts': {'":': 0, '<': 13, '<?xml version=': 0, '>': 13, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '3', 'dir': 'jupyter-structured-clean-dedup', 'id': '153102', 'license': 'MIT', 'n_tokens_mistral': 753, 'n_tokens_neox': 862, 'n_words': 170, 'path': '_posts/html/intersection 포스팅용.ipynb', 'repo_name': 'bluemumin/bluemumin.github.io', 'size': '1282'}