본문 바로가기
파이썬/파이썬 기본 문법

[파이썬 자료형] 리스트 list

by Nov19 2018. 12. 6.
반응형


[파이썬 자료형] 리스트 list


리스트는 다른 언어의 배열과 비슷하다고 볼 수 있다.

숫자나 문자 등의 여러개의 데이터를 다룰 수 있는 자료형이다.


리스트 생성 방법

대괄호[ ]로 감싸 주고 각 요소값들은 쉼표(,)로 구분해 준다.

list1 = [ ] 요소가 없는 빈 리스트를 생성할 수 있다.

list2 = [1, 2, 3] 숫자든 

list3 = ['a', 'b', 'c', 'd'] 문자열이든 

list4 = [1, 2, 'a', '0.3'리스트 안에는 어떠한 자료형도 포함시킬 수 있다.

list5 = [1, 2, ['a', 'b']] 리스트에 리스트를 요소로 포함시킬 수 있다.


리스트 인덱싱

문자열과 같은 방법으로 리스트의 요소들에 접근 할 수 있는 인덱싱을 할 수 있다.

문자열 인덱싱처럼 리스트의 첫번째 인덱스는 a[0]

a[-1]은 문자열에서와 마찬가지로 리스트 a의 마지막 요소값을 말한다.

다중 리스트 일 경우 다음 그림과 같다.


list[1] 의 값은 2이다. 이는 list의 1번쨰 요소는 정수 2이다.

list[2][0]은 'a'이다. 이는 list의 2번째 요소는 리스트이고 그 리스트에서 0번째 요소가 'a'인 것이다.

코드로 보면 다음과 같다.



alist의 범위에서 벗어난 인덱스를 사용한 경우

IndexError: list index out of range 라는 에러를 발생시킨다.


선택 요소에 하위리스트가 없는 경우, 예를들면

alist[0]이 리스트가 아닌 숫자 1인데 이를 다시 인덱싱하려 하면 

TypeError : 'int' object is not subscriptable 에러를 발생시킨다.


리스트 슬라이싱

리스트 슬라이싱 또한 문자열 슬라이싱과 사용방법이 같다. 

list[시작번호 : 끝번호] 로 리스트의 요소를 범위로 선택할 수 있다.

중첩된 리스트를 슬라이싱 할 경우 인덱싱으로 리스트를 선택한 뒤 이어서 슬라이싱하여 선택할 수 있다.


슬라이싱에서 번호의 범위가 리스트의 범위를 벗어나면 에러를 발생시키지 않고

범위에 포함된 값만 선택하거나 범위에 포함된 값이 없으면 빈리스트를 반환한다.


리스트 연산자

리스트 더하기(+)

리스트와 리스트를 더하면 리스트에 다른 리스트의 요소들을 나열하는 연산을 한다.


리스트 반복하기(*)

리스트와 정수를 곱하면 숫자만큼 반복하여 리스트를 나열한다.

단 리스트는 정수만 곱할 수 있으며 음수를 곱하면 빈 리스트을 반환한다.



리스트의 요소를 선택하여 연산

리스트의 요소를 선택할 경우 일반적인 사칙연산과 같은 결과를 보인다.


그러나 선택한 요소의 자료형이 같지 않을경우 다음과 같은 오류가 발생한다.

다음 그림에서는 0번째요소인 1과 2번째 요소인 'a'를 더하려고 해서

TypeError : unsupported operand type for 'int' and 'str' 에러가 발생했다.

정수와 문자열의 연산은 지원하지 않는다는 뜻이다.


숫자끼리의 덧셈은 수학적인 덧셈을, 

문자열끼리의 덧셈은 문자열을 이어주는 역할을 하는데 위와 같은 상황에서는 

숫자 1을 문자열로 변환하는 str( )함수를 이용하여 0번째 요소인 1을 문자열로 변환하여 

연산하면 다음과 같이 연산이 됨을 알 수 있다.






반응형

댓글