스마트웹앱콘텐츠전문가/파이썬(플라스크, 데이터 처리)

[python3]리스트

9D4U 2018. 11. 27. 14:01
728x90
반응형

[리스트] : 데이터 들을 순서대로 저장할 수 있는 컨테이너 타입(순서 있음)


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() : 리스트 요소들의 순서를 뒤바꿈

728x90

'스마트웹앱콘텐츠전문가 > 파이썬(플라스크, 데이터 처리)' 카테고리의 다른 글

웹 관련  (0) 2018.11.30
표준 모듈  (0) 2018.11.28
[그래픽 인터페이스]  (0) 2018.01.25
[네트워크 프로그래밍]  (0) 2018.01.24
[트위터 활용]  (0) 2018.01.24