728x90
배열
- 데이터 원소들의 리스트
- 데이터를 순차적이고 효율적으로 관리하기 위해서 사용함
- 요소 element, 인덱스 index로 접근함
장점
- 접근이 빠름
단점 (파이썬에서는 해당하지 않음)
- 미리 배열의 크기를 설정해야함
- 데이터의 추가, 삭제가 어려움
- 메모리 주소에 어떤 값이 든지 한 번에 알 수 없음
파이썬 List
- List 초기화
- 변수명 = [요소1, 요소2, ...]
- 파이썬은 한 list에 다양한 자료형을 요소로 사용할 수 있음
빈 리스트
list = list()
list = []
string = "hello world"
list_test1 = ['h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd']
list_test2 = list(string)
list_test3 = [1,1.5,"python"]
list_test4 = [1,2,[3,4]]
Output
list_test1
['h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd']
list_test2
['h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd']
list_test3
[1, 1.5, 'python']
list_test4
[1, 2, [3, 4]]
List Index
- 인덱스를 이용하여 읽는 것을 메모리 주소에 한 번에 접근하기에 매우 효율적인 연산임
- 메모리 주소를 가진 접근은 한 번에 가능하지만 메모리 주소에 어떤 값이 들어있는지 한 번에 알 수 없음
- 아래의 배열에서 'o'를 찾기 위해서는 Index 0 부터 차례로 하나씩 조사해야함 (선형 검색) 최대 len(list) 반복
Element | h | e | l | l | o |
Index | 0 | 1 | 2 | 3 | 4 |
이를 이용하여 Indexing, Slicing 가능
Index = list("hello world")
Output
Index[2]
l
Index[2:10:2] #[start:end:step]
['l', 'o', 'w', 'r']
List 삽입 Append, Extend, Insert
- append, 다음 인덱스에 추가
- extent, 리스트 연장 (+)
- insert(Position, Value), 중간에 삽입
Output 아래 코드 실행 후 자동으로 위의 값으로 초기화
list1 = [1,2,3,4,5]
list2 = [6,7,8,9,10]
Output
list1.append(list2)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, [6, 7, 8, 9, 10]]
list1.extent(list2) = list1 + list2
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
list1.insert(1, 100)
[1, 100, 2, 3, 4, 5]
List 삭제 Del,Remove, Pop
- del, n번째 요소를 삭제함
- remove, 지정한 요소를 삭제함
- Pop n번째 요소 삭제후 반환함
Output 아래 코드 실행 후 자동으로 위의 값으로 초기화
list = [1, 2, 3, 4, 5]
Output
# del list[1:4]
[1, 5]
# list.remove(4)
[1, 2, 3, 5]
# pop_value = list.pop(1)
list = [1, 3, 4, 5]
pop_value = 2
- index, 찾는 요소의 인덱스 값을 반환해줌, value = list.index(element)
- in, 찾는 요소가 list에 있는지 유무에 따라 True, False로 반환, element in list
- sort, sorted, list 값을 정렬
- sum, list의 모든 값을 더한 값을 반환
list1 = [1, 0, 7, 9, 6, 4, 5, 3, 8, 2]
Output
# list2 = sorted(list1)
list1 = [1, 0, 7, 9, 6, 4, 5, 3, 8, 2]
list2 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# list1.sort()
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# list1.sort(reverse = True)
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
728x90
'자료구조&알고리즘' 카테고리의 다른 글
[자료구조] 힙 Heap (0) | 2022.09.01 |
---|---|
[자료구조] 트리 Tree (0) | 2022.08.24 |
[자료구조] 해쉬 테이블 (Hash Table) (0) | 2022.08.19 |
[자료구조] 큐 Queue, 스택 Stack (0) | 2022.07.05 |
자료구조 (0) | 2022.06.30 |