list
korea_provinces = [“강원도”, “경기도”, “경상도”,”전라도”]
- list를 사용하면 여러 값들을 순차열 적으로 저장할 수 있다.
- [] 안에 원하는 값들을 나열하는 식으로 생성할 수 있으며, 각각의 값들은 쉼표를 사용해서 구분한다.
- list에 저장되어 있는값은 “element”라고 한다.
- list는 여러 string이외에도 숫자, boolean 값 등 모든 type의 값을 저장할 수 있으며 서로 다른 type의 값들을 저장하는 것도 가능하다
- lists는 값들이 순차적으로 저장된다, 즉 list에는 순서가 존재한다
- list에 저장되어있는 값들 중 원하는 값을 읽어들이려면 해당 값의 순서를 통해서 읽어들이면 된다.(대괄호는 list를 생성할 때도 사용되지만 index로 element를 읽어들일때도 사용된다.)
- list에서 순서는 0번부터 시작한다. 이러한 순서를 list의 index라고 한다. 그리고 index의 마지막은 (list의 총 길이-1)
1. adding and changing elements to list
- list의 특징 중 하나는 수정이 가능하다. list에 element를 추가 할 수 도 있고 기존의 element값을 변경할 수도 있다.
- append(덧붙이다.)
리스트에 새로운 element를 추가하기 위해서 일반적으로 append라는 함수를 사용한다.
listname.append(element)
- list는 순차적으로 element를 저장하므로 element를 list를 추가 할때는 마지막 element의 다음 칸에 덧붙이게 된다.
2.(+)
- 추가하고자 하는 element가 한개 이상일때는 append 대신에 +를 사용할 수 있다
color_list = color_list + [“light blue”, “pink”]
- list에서 + 를 사용하여 element들을 추가 할 때는 대괄호([])를 사용하여 리스트의 형태로 만든 후 추가해야 한다. 즉 + 는 list 와 list를 합하여 준다
- +를 사용하여 리스트들을 합한 값을 다시 저장하고자 하는 변수에 지정해줘야 한다
- +를 사용하면 기존의 list가 수정되지 않고 기존의 list와 다른 새로운 list가 생성되기 때문이다.
- 그러므로 새로 생성된 list를 변수에 다시 지정해 주지 않으면 기존 리스트들은 수정이 되지 않은 상태로 남아있게 된다.
list1 =list1 + list2 #의 형태가 되어야 한다.
3. insert
- append와 + 이외에 insert를 사용해서 리스트에 새로운 요소를 추가할 수 있다
- insert는 append와 + 와는 다르게 원하는 위치에 요소를 삽입할 수 있다.
cities.insert(1, “제주시”)
- 추가하고자하는 요소 이외에 요소를 삽입하고자하는 위치(index)도 지정해줘야 한다.
4. empty list
- 처음에 비어있는 리스트를 생성한 다음에 나중에 요소들을 추가할 수 있다.
mylist=[]
mylist.append(1)
mylist=mylist+[2,3]
5. updating elements
- 새로운 요소를 추가하는 것 외에도 기준의 요소 값을 수정할 수 있다.
- 수정하고하는 요소의 인덱스 값을 통해 리스트에서 요소를 선택한 후 새로운 값을 지정해주면 된다.
cities[2]=“성남시” #cities의 세번째 요소가 성남시로 바뀐다.
6. list slicing
list_name[start : stop]
- 먼저 list 이름이 위치하고
- 그 다음 중괄호([)가 열리고
- 부분적인 리스트가 시작할 첫번째 요소(포함)의 인덱스 번호가 나오고
- : 으로 나눠주고
- 부분적인 리스트가 멈추는 요소(비포함)의 인덱스 번호가 나오고
- 중괄호(])를 닫아준다.
slicing steps
list_name[start : stop : step]
- 그 값 만큼 건너뛰어 가져오는 가능
- step 은 optional이기 때문에 선언해주지 않아도 된다.
- 만일 선언되지 않는다면 default로 1로 지정된다.
slicing tip
- 리스트를 slicing할 때 start index를 빈칸으로 남겨두면 해당 list의 첫 요소부터 시작한다.
- 반대로 stop index를 빈칸으로 남겨두면 start index부터 끝까지 가져온다.
copying. not modifying
slicing은 오리지널 list를 수정하는게 아니라 새로운 list를 만들어낸다.
7. deleting elements from list
del elements[3]
- del 키워드와 리스트의 인덱스를 사용하여 원하는 요소를 리스트에서 삭제한다.
- 요소가 리스트에서 삭제되면 파이썬이 자동으로 리스트의 인덱스들을 다시 정렬해준다.
- 그러므로 인덱스 번호가 중간에 비어있지 않도록 해준다
8. remove
- 인덱스를 사용하지 않고 요소를 리스트에서 삭제하기 위해서 remove를 사용한다.
elements.remove(“hello”)
- del과 다르게 remove는 리스트의 메소드이다.