set1 = {1, 0, 2, 3, 3} print(set1, type(set1))출력 : {0, 1, 2, 3} <class 'set'>set2 = {3, 2, 1, ("a", "b"), ("a", "b")} print(set2, type(set2))출력 : {1, 2, 3 ('a', 'b')} <class 'set'>
set1 = {1, 2, 3, 3, 0} print(set1, type(set1))출력 : {0, 1, 2, 3} <class 'set'>set2 = {3, 2, 1 ("a", "b"), ("a", "b")} print(set2, type(set2))출력 : {1, 2, 3 ('a', 'b')} <class 'set'>set3 = set({1, 2, 3}) print(set3, type(set3))출력 : {1, 2, 3} <class 'set'>set4 = set([1, 2, 3]) print(set4, type(set4))출력 : {1, 2, 3} <class 'set'>
set1 = set() print(set1, type(set1))출력 : set() <class 'set'>for i in range(5) : set1.add(i) print(set1)출력 : {0, 1, 2, 3, 4}set1.add('a') set1.add('문자열') set1.add(34.6) print(set1)출력 : {0, 1, 2, 3, 4, '문자열', 34.6, 'a'}set1.update({11, 22, 33}) print(set1)출력 : {0, 1, 2, 3, 4, '문자열', 34.6, 33, 11, 22, 'a'}set1.remove(0) set1.remove(2) print(set1)출력 : {1, 3, 4, '문자열', 34.6, 33, 11, 22, 'a'}set2 = set1.copy() print(set2, type(set2))출력 : {1, 34.6, 3, 4, '문자열', 33, 11, 22, 'a'} <class 'set'>set2.clear() print(set2)출력 : set()
set1 = set({1, 2}) print(set1, type(set1))출력 : {1, 2} <class 'set'>튜플은 원소로 추가 할 수 있다
set1.add((1, 2)) # 튜플은 hashable하기 때문에 들어 갈 수 있다. print(set1)출력 : {1, 2 (1, 2)}리스트는 원소로 추가 할 수 없다
set1 = set() set1.add([0, 1])
집합 자료형을 이용하여 리스트에 중복 원소들 제거하기
list1 = [0, 1, 2, 3, 1, 5, 4, 0, 1, "a", "b", "a"] list1 = list(set(list1)) print(list1, type(list1))출력 : [0, 1, 2, 3, 4, 5, 'b', a] <class 'list'>
- 집합을 이용하여 중복 여부 확인 (반복문을 활용하여 중복을 찾아내는 거)
nodes = [1, 2, 3, 1, 4, 2, 5] visited = set()for n in nodes: if n in visited: print("already visited", n) else: visited.add(n) print("new", n)출력 : new 1 출력 : new 2 출력 : new 3 출력 : already visited 1 출력 : new 4 출력 : already visited 2 출려 : new 5
- 합집합, 교집합, 차집합
set1 = {1, 2, 3, 4, 5, 6} set2 = {3, 4, 5, 6, 7, 8}합집합
set3 = set1 | set2 print("합집합 : ", set3)출력 - 합집합 : {1, 2, 3, 4, 5, 6, 7, 8}set4 = set1.union(set2) print("합집합 : ", set4)출력 - 합집합 : {1, 2, 3, 4, 5, 6, 7, 8}교집합
set5 = set1 & set2 print("교집합 : ", set5)출력 - 교집합 : {3, 4, 5, 6}set6 = set1.intersection(set2) print("교집합 : ", set6)출력 - 교집합 : {3, 4, 5, 6}차집합
set7 = set1 - set2 print("차집합 : ", set7)출력 - 합집합 : {1, 2}et8 = set1.difference(set2) print("차집합 : ", set8)출력 - 합집합 : {1, 2}*_update() method를 사용하면 원래의 set가 바뀐다. 결과 값은 None 이므로 주의해야 한다.
set9 = set1.difference_update(set2) # set1을 봐야함. print("set1 : ", set1) print("set9 : ", set9)출력 - set1 : {1, 2} 출력 - None
방법1
dict1 = {} dict1["name"] = "홍길동" dict1["age"] = 24 dict1["phone"] = "010-1234-5678" print(dict1, type(dict1))출력 : {'name' : '홍길동', 'age' : 24, 'phone' : '010-1234-5678'} <class 'dict'>방법2
dict2 = {"name": "홍길동", "age": 24, "phone": "010-1234-5678"} print(dict2, type(dict2))출력 : {'name' : '홍길동', 'age' : 24, 'phone' : '010-1234-5678'} <class 'dict'>방법3
dict3 = dict(name="홍길동", age=24, phone="010-1234-5678") print(dict2, type(dict3))출력 : {'name' : '홍길동', 'age' : 24, 'phone' : '010-1234-5678'} <class 'dict'>
dict1 = {"name" : "홍길동", "age" : 24, "phone" : "010-1234-5678"} print(dict1["name"]) print(dict1["age"]) print(dict1["phone"])출력 : 홍길동 출력 : 24 출력 : 010-1234-5678key 값이 존재하지 않으면 에러가 발생
print(dict1["address"])
dict1 = {"name" : "홍길동", "age": 24, "phone" : "010-1234-5678"} print(dict1.get("name", "이름 없슴")) print(dict1.get("address", "주소 없슴")) # default 값으로 주소 없음출력 : 홍길동 출력 : 주소 없음
dict1 = {"name" : "홍길동", "age" : 24, "phone" : "010-1234-5678"} dict1["phone"] = "010-1234-1234" dict1["age"] += 1 print(dict1)출력 : {'name' : '홍길동', 'age' : 24, 'phone' : '010-1234-1234'}
dict1 = {"name" : "홍길동", "age" : 24, "phone" : "010-1234-5678"} dict1["address"] = "서울시 영동대로 12" print(dict1)출력 : {'name' : "홍길동', 'age' : 25, 'phone' : '010-1234-5678', 'address' : '서울시 영동대로 12'}
dict1 = {"name" : "홍길동", "age" : 24, "phone" : "010-1234-5678"} dict1.update({"age":25, "address": "서울시 영동대로 12"}) print(dict1)출력 : {'name' : "홍길동', 'age' : 25, 'phone' : '010-1234-5678', 'address' : '서울시 영동대로 12'}
반복문
for key in dict1.keys(): print(key)출력 : name 출력 : age 출력 : phone값 반복
for value in dict1.values(): print(value)출력 : 홍길동 출력 : 24 출력 : 010-1234-5678(key,value)쌍 얻기
for key, value in dict1.items(): print(key, ':', value)출력 - name : 홍길동 출력 - age : 24 출력 - phone : 010-1234-5678
dict1 = {"name" : "홍길동", "age" : 24, "phone" : "010-1234-5678"} del dict1["phone"] print(dict1)출력 : {'name' : '홍길동', 'age' : 24}