사전 자료형이나 집합자료형 (dict(), set([])은 순서가 존재하지 않기 때문에, 인덱싱 및 슬라이싱이 불가능)
list or tuple은 순서가 존재하기 때문에, 인덱싱 및 슬라이싱이 가능)
1. 사전 자료형
1) data=dict() 로 초기화해야 함
2) keys()와 values()로 구성됨
3) key와 value 모두 값을 기반으로 하는 것이지, 0, 1 등의 위치를 기반으로 하지 않는다. 그래서 value값을 찾으려면 key의 string을 넣는다...
4) data만 구별자로 넣을 경우, 이는 key값으로 봐야 함
data=dict()
data['사과']='apple'
data['바나나']='banana'
data['멜론']='melon'
print(data)
print('keys : ', data.keys())
print('values : ', data.values())
print('items : ', data.items())
print('data : ', data['바나나'])
print('data[0] : ', data.values['melon'])
for i in data:
print(data[i])
2. 집합자료형
1) 중복 및 순서 없음
2) set([]) 또는 {}로 초기화 함
3) data.add는 하나의 원소만 입력 가능
4) data.update는 한개 이상의 원소를 입력 가능함. 단 []안에 넣어야만 함
5) data.remove는 하나의 원소만 가능함. 만약 없는 원소이면 에러나옴
d = set([0, 1, 1, 2, 3, 4, 5, 6, 7])
print(d)
d.add(8)
print(d)
d.add(9) #([9]) 안됨
print(d)
d.add(10) #(10,11) add는 하나의 원소만 가능함
print(d)
d.update([11]) #(11) update는 일반 원소로는 불가 []안에 데이터를 넣어야만 함
print(d)
d.update([13, 14])
print(d)
d.update(13) #([13]), ([13,14]), (13,14) remove는 하나의 원소만 가능함
print(d)
0. tuple
1) 특징은 값을 변경 불가. 메모리 최적화 등의 장점이 있어서....
2) 노드의 경로를 처음에 넣어 주거나 ex) graph, 암호값(hashing)값을 쓸때 유용함 ==> 값이 변경이 안되기 때문
3) 메모리 최적화에 좋음.......
==> 그런데, 노드 경로 외로는 사용할 이유가 있는지는 잘 모르겠음.....