리스트란 ?
시퀀스 데이터 : 데이터에 순서가 존재하는 데이터
index를 이용해서 리스트[index]로 한번에 접근 가능하다
리스트를 만드는 방법
👉대괄호 이용
a = [1,2,3]
b = ['a','b','c']
c = [] #요소가 없는 비어있는 리스트
👉list()를 이용한 방법
d = list()
👉2중 for 문으로 2차원 배열 선언
array = [[0 for col in range(n) for row in range(n)]
👉연산자와 for 문으로 2차원 배열 선언
array = [ [0] * n for _ in range(n)]
👉연산자 * 로 2중 리스트 선언 ❌
array = [ [0] * n ] * n ]
이 방법으로 배열을 선언하게 되면, 단순히 요소를 복사하게 되는 얕은 복사가 일어나게 된다.
단순 요소를 복사하다 보니 바라보는 객체 ( 주소값)은 동일!
이러한 방식으로 선언하고 값을 변경하게 되면, 다른 요소들도 값이 변경되는 현상이 발생하게 됨!
👊리스트 ' + '
: 리스트를 이어 붙인다
a = ['a','b','c']
b = [1,2,3]
print(a + b) # ['a','b','c',1,2,3]
👊곱셈 ' * '
: 리스트를 반복한다
a = [1,2,3]
b = a * 3
print(b)
#[1,2,3,1,2,3,1,2,3]
👊리스트 슬라이싱 : 리스트 자르기
리스트[ 시작 index : 끝 index + 1 ]
👊리스트의 길이, 삭제
len ( 리스트 )
: 리스트의 길이를 반환해준다
del( 리스트 범위 or 리스트 특정 요소)
: 리스트 슬라이싱을 이용해 리스트에서 특정 범위만큼을 삭제할 수 있다.
🤍 리스트 메소드 : append , insert, remove, pop, extend
👊list.append(x) : 리스트에 값 추가
- 리스트 append함수를 이용해서 리스트의 끝에 값에 x를 추가하는 함수
👊list.insert(a,b) : 특정 위치에 값 추가
- a위치에 b값을 추가
👊list.remove(x) : 리스트에서 특정 값 제거
리스트에서 특정 값 x를 찾아서 제거하는 함수
x가 존재하지 않는다면 에러!
x가 여러개 존재하면, 맨 처음 x만 지워줌
👊list.pop() : 리스트 맨 마지막 값 반환 후 삭제
리스트에 있는 맨 마지막 값을 반환한 후에 리스트에서 해당 값을 삭제하는 함수
👊list.extend(list2) : 리스트에 다른 리스트2 연결
리스트1에 리스트2를 붙이고 싶을때 사용하는 함수
extend(매개변수) 함수의 매개변수에는 무조건 리스트가 와야한다!
💨 ' + '연산자와 다른 점
list1 + list2 : 두개의 리스트를 연결해서 새로운 list3을 반환함
list3 = list1 + list2
list1.extend(list2)는 list1 리스트 객체에다가 list2를 붙이고, list1객체를 그대로 사용할 수 있다는 점
리스트 메소드 : copy , reverse , sort , count , index, clear
👊list.copy() : 리스트 복사
- 주소값이 다른 리스트가 생기게됨 ( 깊은 복사 )
👊list.reverse() - 리스트 뒤집기
- 뒤집은 리스트 반환 X, 현재 리스트를 뒤집음
👊list.sort() - 리스트 정렬
💢 내부 요소의 데이터 타입이 같아야한다!
데이터 타입이 통일되지 않아서 비교가 불가능함 = 정렬 불가능
👊list.count(x) - 리스트 값 x의 개수 세기
리스트 내부에 매개 변수로 전달받은 x와 같은게 몇개가 있는지 세서 개수를 반환하는 함수
👊list.index(x) - 리스트 값 x의 값 위치(index)값 반환
x가 없다면 에러가 발생함
👊list.clear() - 리스트에 저장된 모든 값 삭제
리스트 내부에 존재하는 모든 값들을 삭제함
💩파이썬 리스트 깊은 복사 / 얕은 복사
깊은 복사 : 복사를 해서 각각 독립적인 리스트가 된다
예 ) copy함수, [:] 슬라이싱
얕은 복사 : 복사는 했지만 겉에만 복사가 됨! 같은 리스트를 가리키고 있는 것
예 ) = 대입
'Language > Python' 카테고리의 다른 글
[Python] DFS / BFS 정리 (0) | 2022.03.17 |
---|---|
[Python] 파이썬 리스트 정리 - (stack이용, range, 리스트 컴프리헨션, 중복값 제거, in, not in) (0) | 2022.03.13 |
[Python] Sorted함수 정리 (0) | 2022.03.13 |
[Python] Join 함수 정리 (List를 하나의 문자열로) (0) | 2022.03.13 |