[리스트] : 데이터 들을 순서대로 저장할 수 있는 컨테이너 타입(순서 있음)
1. 리스트 생성 방법 :
range: 특정 범위의 숫자를 리턴하는 객체(이터레이터)
>>> list(range(0,10))
2. 슬라이스로 리스트에서 데이터 추출
ex) 첫 번째 데이터를 가지고 오거나 마지막 데이터를 가져오고 싶을 경우
형식 : 리스트[]
>>>class[0]
리스트
인덱스 0 1 2 3 4 5 6
인덱스 -7 -6 -5 -4 -3 -2 -1
3. 다양한 형태의 슬라이스
형식 : [시작 인덱스 : 끝 인덱스 : 증가 수] ※끝 인덱스는 마지막 요소를 포함하지 않음.
# 앞에서 2개 요소 가져오기 : list[:2] (앞에 0이 생략된다고 생각 = 인덱스0 <= 리턴값 < 인덱스2)
# 앞에서 2번째부터 2개요소 가져오기 : list[1:3] (인덱스1 <= 리턴값 < 인덱스3)
# 뒤에서 2개 요소 가져오기 : list[-1:-3:-1]
# 같은 의미 : list[] = list[0:len(list):1] <- 영역에 값을 주지 않으면 기본 값을 갖기 떄문
4. 리스트에서 추가,삭제,변경
# 추가
list.append('a') <- 리스트의 뒤에 요소 하나를 추가하는 것.
list.insert(0, 'b') <- 요소 사이에 데이터를 추가하는 것.(첫번째 매개변수가 인덱스)
list[1:1]=['c'] <- 슬라이스를 사용해서 리스트 추가. ※2개 이상의 요소를 추가할 떄 유용.(ex) list[1:2] = ['c','d']
#삭제
del list <- 리스트의 인덱스에 해당하는 요소를 삭제(del은 리스트뿐만아니라 딕셔너리에도 같은 용도로 사용)
list.remove('kiwi') <- 동일한 데이터를 리스트에서 삭제할 때 사용.
5. 다차원 리스트 : 리스트에 리스트 추가
6. 리스트 정렬 방법
# 정렬을 위해서 빌트인 함수로 sorted라는 함수를 사용
또는 리스트에도 sort라는 메소드 사용
ex) sorted(list)
7. 리스트 복사하기
리스트 복사 3가지 방법
ex)
a(원본) = [1,2,3,4]
○ b = a[:] <- [:]를 이용해서 a의 복사본을 만듦
○ c = a.copy() <- copy 메소드를 이용해서 본사본을 만듦
○ d = list(a) <- 새로운 리스트 생성
#얕은 복사화 깊은 복사 <- 데이터 변경상태가 서로 다름에 주의
# 얕은 복사
s_copied = data.copy()
# 깊은 복사(모든 데이터를 복사하기 위해서는 copy모듈의 deepcopy 함수를 사용해야 함.)
d_copied = copy.deepcopy(data)
--------------------
[1,[2,xx,4],5]
7. 리스트의 친척들(튜플과 레인지(range))
# 튜플
- 파이썬의 독특한 데이터 구조.
- 리스트처럼 순서가 있는 데이터를 저장하지만, 내부 데이터 변경이 불가능 = 오직 읽기만 가능
- 저장하는 목적이 다름. 즉, 한 번 만들고 변경되지 않을 데이터에 사용
- 튜플 생성 : tuple()
# range
- range함수는 ragne객체를 생성
- range 객체는 특정 범위의 정수를 표현
- 읽기 전용으로 데이터 변경이 불가능하다는 점이 튜플과 동일.
- 형식 : range(stop) 또는 range(start, stop[, step])
ex)
>>> list(range(10)) => [0,1,2,3,4,5,6,7,8,9] = 0~9까지의 정수
>>> list(range(1,11)) => [1,2,3,4,5,6,7,8,9,10] = 1~10까지의 정수
>>> list(range(0,30,5)) => [0,5,10,15,20,25] = 0~29까지의 정수 중 5만큼씩 증가하는 수
>>> list(range(0,-10,-1) => [0,-1,-2,-3,-4,-5,-6,-7,-8,-9] =0~--9까지의 수
>>> list(range(0) 또는 list(range(1,0)) => [] = 정수 없음
8. 리스트 API들
# 리스트는 변경하지 않고(원본 데이터 변경) 정보를 얻을 수 있는 API들
- x in s : 리스트 s에 x 요소가 있으면 True 아니면 False
- x not in s : 리스트 s에 x 요소가 없으면 True 아니면 False
- s + t : 리스트 s와 t를 붙여서 새롤ㅇ누 리스트를 만듦
- s * n 또는 n * s : 리스트 s를 n번 반복해서 붙임.
- s[i] : 리스트 s에서 특정 인덱스의 요소를 찾음.
- s[i:j] : 리스트 s에서 인덱스 i에서 j까지의 영역 요소를 리스트로 반환
- s[i:j:k] : 리스트 s에서 인덱스 i에서 j까지의 인덱스를 k만큼 증가시킨 요소를 리스트로 반환
- len(s) : 리스트 s의 요소 개수 반환
- min(s) : 리스트 s에서 가장 작은 요소
- max(s) : 리스트 s에서 가장 큰 요소
- s.index(x[,i[,j]]) : 리스트 s에서 x가 나타난 첫 번째 인덱스를 반환. 이떄, i,j는 i 인덱스 이후, j 인덱스 전을 의미
- s.count(x) : 리스트 s에서 x가 나타난 횟수
#리스트를 수정할 수 있는 API들
- s[i]= x : 리스트 s의 i 인덱스의 요소를 x로 교체
- s[i:j]= t : 리스트 s의 [i:j] 영역의 요소를 t로 교체
- del s[i:j] : 리스트 s의 [i:j] 영역의 요소를 제거
- s[i:j:k] = t : 리스트 s의 [i:j:k] 영역의 요소를 t로 교체
- del s[i:j:k] : 리스트 s의 [i:j:k] 영역의 요소를 제거
- s.append(x) : 리스트 s의 마지막에 요소 x를 추가
- s.clear() : 리스트를 초기화해서 빈 리스트로 만듦
- s.copy() : 리스트를 복사(s[:]와 동일)
- s.extend(t) or s += t : 리스트 s에 리스트 t의 요소를 모두 추가.
- s *= n : 리스트 s의 내용을 n번 반복한 것을 s에 업데이트
- s.insert(i,x) : 리스트 s의 i번째 인덱스에 x를 삽입.
- s.pop(i) :리스트 s의 i번째 인덱스의 요소를 제거
- s.remove(x) : 리스트 s에서 x와 동일한 요소를 제거
- s.reverse() : 리스트 요소들의 순서를 뒤바꿈
'스마트웹앱콘텐츠전문가 > 파이썬(플라스크, 데이터 처리)' 카테고리의 다른 글
웹 관련 (0) | 2018.11.30 |
---|---|
표준 모듈 (0) | 2018.11.28 |
[그래픽 인터페이스] (0) | 2018.01.25 |
[네트워크 프로그래밍] (0) | 2018.01.24 |
[트위터 활용] (0) | 2018.01.24 |