앞에서 Json을 공부했다면 딕셔너리와 리스트는 쉽게 이해할 수 있을 것이다.
Python도 생긴 지 얼마 안 된 언어이므로 JSON형식을 지원한다. JSON형식 자료형에는 리스트와 오브젝트라는 것이 있는데 파이썬에서는 오브젝트를 딕셔너리라고 한다.
리스트
선언
리스트는 my_list = []로 선언, my_list = [ 1, 2, 3 ]로 선언과 동시에 초기화할 수 있다.
어찌 보면 배열과 유사하지만 배열은 크기를 고정해야 하지만 리스트는 길이가 가변적이다. 또한 배열은 같은 자료형의 데이터만 넣을 수 있지만 리스트는 다른 자료형의 데이터를 넣을 수 있다.
my_list = [ '문자', 111, True ] 이런 식으로 값을 넣을 수 있다.
추가
더 넣고 싶다면 my_list.append('추가할 데이터') 함수를 이용하면 된다.
특정 위치에 값을 삽입하고 싶다면 my_list.insert(위치, 값) 함수를 이용하면 된다.
삭제
값을 삭제하고 싶다면 remove 함수를 이용하면 된다.
my_list = [ 1, 2, 3, 1]
my_list.remove(1)
이렇게 실행하면 my_list는 최초 1이 삭제되어 [ 2, 3, 1] 가 된다.
my_list = [ 1, 2, 3, 1]
my_list.pop(2)
이렇게 실행하면 3번째 값이 반환되면서 3이 삭제되어 [1, 2, 1]이 된다.
또는
del my_list [2]이렇게 삭제할 수 있다.
연달아 삭제하고 싶은 경우 del my_list[1:3] 이렇게 삭제하면 된다.
길이
리스트의 길이를 알고 싶다면 len(my_list) 함수를 이용하면 된다.
정렬
my_list.sort() my_list.reverse() 함수를 이용하자!
슬라이싱
my_list = [ 1, 2, 3, 4] 이렇게 값이 있을 때
my_list[1:3] 이렇게 하면 새로운 [ 2, 3] 리스트 만들어진다.
배열에는 없는 -1로 인덱싱을 할 수 있는데 마지막 위치를 의미한다.
my_list[-1]에는 4를 반환하고 my_list[2:-1]하면 my_list[2:3]이 되어 [3]을 반환한다.
my_list[-2]는 뒤에서 두 번째인 3을 반환하는데 잘 안 쓰이므로 패스하자
리스트 합치기
리스트는 간단하게 + 연산자를 통해 합칠 수 있다. list1 + list2
리스트 for 루프
my_list = [ 1, 2, 3, 4]
for data in my_list:
print (data)
이렇게 실행하면
1
2
3
4
가 출력된다
my_list = [ 1, 2, 3, 4]
for index, data in enumerate (my_list):
print (index, data)
이렇게 실행하면
0 1
1 2
2 3
3 4
가 출력된다
딕셔너리
선언
리스트는 my_dict = {}로 선언, my_dict = { 'name': 'moai', 'age': 32}로 선언과 동시에 초기화할 수 있다.
키와 값으로 이루어져 있다.
추가
my_dict['새로운 키'] = 값 으로 새로운 데이터를 넣을 수 있다.
예를 들어 my_dict[0] = 2, my_dict['blood'] = 'A' 이런 식으로 값을 넣을 수 있다. JSON은 키가 문자열만 가능했지만 파이썬의 딕셔너리는 키, 심지어 객체도 가능하다. 즉 키는 변경 불가능하지만 하면 된다.
삭제, 길이
리스트와 동일하다
정렬, 슬라이싱
pass
딕셔너리 합치기
my_dict1.update(my_dict2) 이렇게 update 함수로 합치면 된다.
딕셔너리 for 루프
my_dict = { 'name': 'moai', 'age': 32} 이렇게 선언되어 있다면?
for key, data in dict.items():
print (key, data)
이렇게 실행하면
name moai
age 32
가 출력된다.
for key in dict.keys():
print (key)
이렇게 실행하면
name
age
가 출력된다.
for data in dict.values():
print (data)
이렇게 실행하면
moai
32
가 출력된다.