코인시던스의 기록

[#7 파이썬 기초] 리스트 타입, 리스트 생성 방법, 리스트 Indexing(인덱싱) 본문

파이썬

[#7 파이썬 기초] 리스트 타입, 리스트 생성 방법, 리스트 Indexing(인덱싱)

코인시던스 2020. 9. 19. 12:48

안녕하세요. 오늘은 파이썬 컬렉션 4가지 중 리스트(List) 에 대해 알아보겠습니다. 리스트가 무엇인지, 리스트를 생성하는 방법, 리스트 인덱싱에 대해 다뤄보겠습니다. 리스트에서 문자열을 일부 가져오는 슬라이싱(Slicing)이나, 리스트 항목을 추가하고 삭제하는 건 [#8 파이썬 기초] 를 참조해주세요.


   리스트 타입의 이해

실생활에서 말하는 학생 리스트, 성적 리스트 등과 같이 복수개의 값을 담을 수 있는 데이터 구조를 말합니다. 리스트(List) 는 생성한 후에도 원소를 추가하거나 삭제하는 등 변경이 가능해서(mutable) 리스트의 크기가 동적으로 늘어나기도 줄어들기도 합니다. 나중에 배울 튜플(tuple) 이라는 컬렉션과 차이가 나는 부분이죠.

 

   리스트 생성/초기화 방법

리스트를 생성하는 방법은 여러가지가 있지만 대표적인 3가지를 소개해 드리겠습니다. 

 

   1) 대괄호 [] 안에 값을 담아서 생성 : 가장 기본적인 방법 입니다.

- 리스트 안에 담고 싶은 값을 대괄호[] 안에 넣어주면 리스트가 만들어 집니다.

'a 라는 변수에 빈 리스트를 생성하겠다.' 라는 뜻으로 print 를 했을 때 비어 있는 리스트가 나옵니다.
대괄호 [] 안에 1, 2, 3, 4, 10 5개의 숫자를 넣어 리스트를 생성해줬습니다. 갖는 리스트가 생성되었다.

- 리스트에는 정수형, 실수형 타입 뿐 아니라 문자열 타입 등 여러가지 타입을 동시에 담을 수 있습니다. 아래의 예시를 보시면 리스트 안에 리스트도 담을 수 있는 것을 확인할 수 있죠.

리스트에는 문자열, 리스트, 정수형 등 여러가지 타입을 동시에 담을 수 있습니다.

   2) list() 함수로 생성

- 다른 데이터 타입을 리스트로 변환할 때 많이 사용합니다. list 함수에 문자열이 주어지면 문자열의 각 문자를 원소로한 리스트가 만들어집니다.

list() 함수를 이용해 문자열을 List 형태로
list() 함수를 이용해 Tuple 을 List 형태로

   3) str.split() 함수로 생성 : 구분자로 구분되는 리스트를 반환할 때 매우 많이 사용합니다. split 함수는 기본적으로 띄어쓰기를 기준으로 문자열을 나누는데, 그러면 띄어쓰기가 구분자가 되겠죠.

띄어쓰기로 구분되는 문자열이 리스트의 원소로 봔환되었다.

   리스트 Indexing

리스트 역시 문자열과 동일하게 순서가 있는 모음이기 때문에 각 원소에 순서에 따라 Index 를 가집니다. 문자열 인덱싱과 마찬가지로 첫 번째 원소의 인덱스는 '0', 마지막 원소는 '리스트 길이 - 1' 인덱스를 가집니다. 음수 index 도 지원됩니다.

리스트는 불변 개체가 아니기 때문에 인덱스에 접근하여 값을 업데이트 할 수 있습니다.

 

       [참고] 불변 개체 - 리스트와는 다르게 문자열은 파이썬의 대표적인 불변 개체입니다. 문자열은 한번 생성되면 절대 바뀔 수 없습니다. 문자열을 변경하려고 하면 Error 가 뜨는데 아래와 같이 'str' 은 item assignment 를 지원하지 않는다는 것을 볼 수 있죠.

hello world 에서 jello world 로 바꾸려면 Error 가 뜨는 것을 볼 수 있다.

문자열은 한번 생성되면 변하지 않기 때문에 hello world 대신 jello world 를 print 하고 싶다면

① 문자열을 아예 새로 생성 ② 변경하고 싶은 부분만 추가 ③ replace 함수를 이용 하면 됩니다. 하지만 3가지 방법 모두 a 자체가 바뀐건 아니죠.

Comments