중복되는 원소 없이, 순서에 상관없는 데이터들을 묶어 놓은 집합형 자료구조
1. 중괄호({ }) 를 이용하여 생성
set1 = {1, 2, 3, 1}
2. set( ) 을 이용하여 생성
set1 = set([1, 2, 3, 1])
> {1, 2, 3}
1. List와 마찬가지로 여러 다양한 타입의 요소(element)들을 저장할 수 있습니다.
2. 요소들이 순서대로 저장되어 있지 않습니다.
그렇기 때문에 for문에서 읽어들일때 요소들이 순서대로 나오는게 아니라 무작위 순서대로 나옵니다. 순서가 없으므로 indexing도 없어 몇번째 요소를 읽어들이거나 할 수 없습니다.
2. Set의 요소에 접근할 수 없습니다.
순서가 없으므로 indexing도 없어 몇번째 요소를 읽어들이거나 할 수 없습니다.
3. 중복값을 가질 수 없습니다.
만약 동일한 요소를 저장하려 한다면 이전 요소를 치환합니다.
1. 새로운 요소 추가하기
: add( )
함수를 이용하여 새로운 요소를 추가합니다.
my_set = {1, 2, 3}
my_set.add(4)
print(my_set)
> {1, 2, 3, 4}
2. 요소 삭제하기
: remove( )
함수를 이용하여 특정 요소를 삭제합니다.
my_set = {1, 2, 3}
my_set.remove(3)
print(my_set)
> {1, 2}
in
: Set에 어떠한 값이 이미 포함되어 있는지 in
키워드를 사용해 look up 할 수 있습니다.my_set = {1, 2, 3}
if 1 in my_set:
print("1 is in the set")
> 1 is in the set
if 4 not in my_set:
print("4 is not in the set")
> 4 is not in the set
&
키워드 혹은 intersection( )
: set의 교집합을 구할 수 있습니다.set1 = {1, 2, 3, 4, 5, 6}
set2 = {4, 5, 6, 7, 8, 9}
print(set1 & set2)
> {4, 5, 6}
print(set1.intersection(set2))
> {4, 5, 6}
|
키워드 혹은 union( )
: set의 합집합을 구할 수 있습니다.print(set1 | set2)
> {1, 2, 3, 4, 5, 6, 7, 8, 9}
print(set1.union(set2))
> {1, 2, 3, 4, 5, 6, 7, 8, 9}
key
값과 Value
값을 1대1로 대응시켜 쌍으로 가지고 있는 사전형 데이터 자료구조
중괄호({ })와 :
를 사용해 dictionary를 생성
my_dict = { "key1" : "value1", "key2" : "value2", "key3" : "value3" }
key
값은 string
뿐만 아니라 숫자도 가능합니다.key
값은 중복될 수 없으며 이미 존재하는 key
값이 추가되면 기존의 key
값의 Value
값을 치환합니다.dict1 = { 1 : "one", 1 : "two" }
print(dict1)
> { 1: "two" }
1. 새로운 요소 추가하기
: 새로운 key
값과 Value
값을 이용하여 요소를 추가합니다.
dictionary_name[new_key] = new_value
dict = {1:"one", "two":2}
dict[3] = "three"
print(dict)
> {1:"one", "two":2, 3:"three"}
2. 요소 수정하기
: 이미 존재하는 key
값을 이용하여 value
값을 수정합니다.
my_dict = { "one": 1, 2: "two", 3 : "three" }
my_dict["one"] = 4
print(my_dict)
> {"one": 4, 2: "two", 3: "three"}
3. 요소 삭제하기
: key
값을 이용하여 특정 요소를 삭제합니다.
my_dict = { "one": 1, 2: "two", 3 : "three" }
del my_dict["one"]
print(my_dict)
> {2: "two", 3: "three"}
Set과 Dictionary
공통점
중복값을 가질 수 없다.차이점
1.Set
은key
값만 가지고 있으나
Dictionary
는key
값과value
값을 가지고 있다.
Set
은 순서가 없으므로 indexing도 없어 특정 요소에 접근할 수 없으나
Dictionary
는key
값을 이용하여 특정 요소에 접근할 수 있다.
Dictionary
는key
값은 수정 불가능,value
값은 수정이 가능.
Set
은 수정 가능하다.