직장인 난중일기

파이썬(python) 리스트 자료형 총정리_1 본문

코딩공부/파이썬(Python)

파이썬(python) 리스트 자료형 총정리_1

SStarter 2018. 12. 30. 21:13

파이썬(python) 리스트란?







파이썬 리스트 자료형에 대해 총정리 해본다.

리스트는 대괄호로 감싸 주고, 각각의 요소 값들을 쉼표로 구분해주면 된다.





리스트명 = [요소1, 요소2, 요소3]








리스트는 위 a 처럼 비어 잇는 리스트 일 수도 있다. 

b 처럼 요소값으로 숫자를 가질 수도 있고, c 처럼 문자를 가질 수도 있다.

d 처럼 숫자와 문자를 요소값으로 가질 수도 있다.

또한 e 처럼 리스트 자체를 요소값으로 가질 수도 있다. (*리스트 안의 리스트)







리스트 인덱싱과 슬라이싱





리스트는 문자열처럼 인덱싱과 슬라이싱을 할 수 있다. 

한 가지만 주의하면 인덱싱과 슬라이싱을 어렵지 않게 할 수 있다.


요소값의 순서만 잘 기억하면 된다.

파이썬은 숫자를 '0' 부터 센다는 특징을 잘 기억하자는 것.






각 요소값의 순서가 1, 2, 3, 4, 5 처럼 부여 된다면 더 쉽겠지만, 

파이썬에서 아래 빨간색으로  표시한 순서대로 부여된다.

이를 잘 기억하고 예제를 통해 인덱싱과 슬라이싱을 직접 해보자.








a 라는 변수에 [1, 2,, 3, 4, 5] 라는 값을 설정했다.

다시 한번 기억하자. 0은 리스트의 첫 번째 요소를 말한다.


a[0] 으로 리스트의 첫 번째 요소를 지정했다.

답은 1 이다. 


또, 리스트의 첫 번째 요소와 네 번쨰 요소를 지정했다.

네 번째 요소는 '5'이기 때문에

1 + 5 = > 6 이 결과 값으로 나온 것이다. 












이번엔 리스트 안에 ['안녕', '하세요'] 라는 리스트를 넣었다.

아까 말했던 리스트 안의 리스트이다.


0부터 센다는 파이썬의 특징을 생각해보면 저 리스트는 3번째에 위치해있다.

-1을 해도 동일한 값이 나온다.


-1은 마지막 요소값을 나타낸다.

0을 기준으로 역으로 순서를 부여해보면 마지막 리스트의 순서가 -1이 되는 건 당연해보인다.


그럼 -3은 ?

결과 값이 '2' 로 나오게 될 것이다. 











그럼 리스트 안의 리스트. ['안녕', '하세요'] 에서 '안녕'만 끄집어 내려면 어떻게 해야 할까?


a[3][0]



위와 같은 형식으로 인덱싱을 하면 된다.

a의 3번 째는 리스트 안의 리스트를 가르킨다.

다시 그 리스트 안에서 0번 째는 '안녕' 이라는 문자열을 가르키기 때문에 

 '안녕' 이라는 값이 잘 출력된 것이다.




이번엔 슬라이싱을 해보자.

a 변수에 [1, 2, 3, 4, 5] 라는 값을 설정했다.






슬라이싱에는 콜론(  :  ) 이 쓰인다.

이것은 물결표 ( ) 와 비슷한 뜻이다. ~ 에서 ~ 까지 정도로 생각하면 될 것 같다.


그럼 [0 : 2] 는 0~2 까지 인데, 

당연히 1, 2, 3 까지 포함될 것 같지만 값은 [1, 2] 로 출력이 된다.


그런데 [2:] 와 같이 . 즉, 2에서 부터 끝까지 슬라이싱을 하면 

[3, 4, 5] 로 값이 출력이 된다. 2번째 숫자인 3이 포함되서 나오는 것이다.


그 반대인 [:2] 는 다시 3이 포함되지 않는다.


왜 이렇게 되는건지는 모르겠으나, 파이썬에서 정해진 법칙이니 그냥 외우는게 낫겠다.

리스트가 아닌 문자열에서 슬라이싱 할 때도 동일하다. 그냥 외우자.







리스트 연산자




리스트도 +(더하기) 를 할 수 있고, *(곱하기)도 할 수 있다.

리스트 더하기와 곱하기를 직접 해보자.








a 라는 변수는 [1, 2, 3]

b 라는 변수는[4, 5, 6, 7] 로 설정했다.


a와 b를 더했더니 [1, 2, 3, 4, 5, 6, 7] 이 됐다.


그리고 b에 2를 곱했더니 [4, 5, 6, 7, 4, 5, 6, 7]이 됐다.

즉 *(에스터리스크)는 리스트가 반복 되는 것이다.

전혀 어려운게 없었다.




Comments