본문 바로가기
프로그래밍/파이썬 문법

호기심 파이썬(자료형 : 리스트)

by 인성패밀리 2022. 4. 12.
반응형

이번에는 자료형 중 하나인 리스트에 대해서 알아보겠습니다.

 

중국집 메뉴 리스트라고 이야기하면 짜장면, 짬뽕, 볶음밥, 쟁반짜장 등등 이런 식으로 나열하여 생각하게 됩니다.

 

파이썬에서 말하는 리스트도 이와 동일합니다.

 

중국집 메뉴 리스트를 파이썬 코드로 표현하면 다음과 같습니다.

 

menu = ["짜장면", "짬뽕", "볶음밥", "쟁반짜장"]

이런 식으로 표현합니다.

 

여기서 ,(콤마)로 구분지어놓은 "짜장면", "짬뽕" 같은 것을 리스트의 원소라고 표현합니다.

 

정수, 실수 자료형은 숫자로 만들고

문자열 자료형은 '와 "로 감싸서 만들고

리스트는 [](대괄호)로 감싸서 만듭니다.

 

리스트 자료형에 대해서 자세히 설명하면 자료형을 묶을 수 있는 자료형입니다.

 

다음은 리스트의 기본 형식입니다.

[]  => 빈 리스트

[1]  => 원소가 한 개인 리스트

[1, 2, 3]  => 원소가 여러 개인 리스트

 

이제 리스트의 사용방법에 대해서 알아보겠습니다.

 

이전에 문자열에서 했었던 인덱스와 문자열 연산, 접근, 슬라이싱 문법이 기억나시나요?

문자열 + 문자열 => 가능

문자열 * 정수 => 가능

접근하는 방법 : 문자열[해당 인덱스 번호]

슬라이싱하는 방법 : 문자열[시작 인덱스 번호: 끝 인덱스 번호 + 1]

                              문자열[  : 끝 문자열 + 1]

                              문자열[시작 문자열:   ]

 

여기있는 문자열이라는 단어를 전부 리스트로 바꿔 사용하면 똑같습니다. 코드를 통해서 알아보겠습니다.

이 코드의 실행 결과는?
첫 번째 print가 첫 번째 결과입니다.

위 코드에서 보면 자료형이 변경되었을 뿐 사용방법은 모두 동일합니다.

 

리스트에서는 추가적으로 알아야할 개념이 있는데 추가, 삽입, 변경, 삭제의 개념입니다.

문자열에서는 이러한 개념이 없었습니다. 파이썬이 데이터를 저장하는 방법에 대해서 다음 포스팅에서 알아보도록 하겠습니다.

 

리스트의 원소를 추가하는 방법

이런 것이 추가가 아닙니다.

a = [1, 2]  => 이 코드를 리스트를 정의했다라고 표현하고

a = [1, 2, 3]  => 이 코드는 원래 a변수에 있던 리스트를 [1, 2, 3]으로 다시 저장하였으므로 "재정의"라고 합니다.

 

append라는 메소드(method)를 사용하여 추가를 합니다. 코드를 통해서 알아보겠습니다.

이 코드의 결과는?
출력 결과 3이 추가되었습니다.

형식은 다음과 같습니다.

리스트변수.append(자료형)

 

리스트에서 추가를 하면 리스트의 맨 뒤에 자료형을 넣는 것을 의미합니다.

 

리스트의 원소를 삽입하는 방법

삽입은 원하는 위치에 값을 넣는 것을 말합니다. 원하는 위치는 인덱스 번호를 말하고, 값은 자료형을 말합니다. 다음의 코드를 보겠습니다.

이 코드의 결과는?
원하는 위치에 문자열 x가 들어갔습니다.

형식은 다음과 같습니다.

리스트변수.insert(삽입할 인덱스, 자료형)

 

리스트 원소를 변경하는 방법

리스트의 원소에 접근하여 다른 값을 저장하는 것을 말합니다. 기존에 사용하던 접근에 등호를 이용하여 변경합니다. 다음의 코드를 보겠습니다.

이 코드의 실행 결과는?
변경은 접근하여 등호를 사용하여 변경합니다.

형식은 다음과 같습니다.

리스트변수[인덱스] = 자료형

 

리스트 원소의 값을 변경하려면 접근하여 등호(=)를 사용하여 새로운 값을 저장하면 리스트 원소의 값이 변경됩니다.

a[2] = 777 에서 a[2]는 2번 인덱스에 접근하는 것입니다. 등호는 저장한다, 넣는다의 의미를 가지고 있으므로 우변의 777이란 정수 자료형을 저장하게 되어 리스트의 원소가 변하게 되는 것입니다.

 

리스트 원소를 삭제하는 방법

리스트의 내의 원소를 지우는 방법입니다. 다음 코드를 보면서 이해해보겠습니다.

이 코드의 실행 결과는?
원소 'a'와 'b'가 지워졌습니다.

형식은 다음과 같습니다.

del 리스트변수[인덱스]

 

del을 이용하여 원소에 접근하여 지우는 것입니다. 첫 번째 3번 인덱스를 지우게 되면 리스트가 [1, 2, 3, 'b', 4]로 변하게 됩니다. 따라서 기존 인덱스 번호가 새롭게 변하게 됩니다. 두 번째 3번 인덱스를 지우게 되면 최종 결과와 같이 변하게 됩니다. 

 

위는 접근하여 지우는 방법을 말하며 슬라이싱하여 지우는 방법도 있습니다.

이 코드의 결과는?
결과는 첫 번째와 똑같습니다.

형식은 다음과 같습니다.

del 리스트변수[슬라이싱 문법]

 

이렇게 기존의 자료형이 변하는 것(추가, 삽입, 변경, 삭제)을 가지고 mutable한 자료형이다. 라고 합니다.

 

변경이 가능한 자료형과 변경이 불가능한 자료형의 특징은 변수에 자료형을 저장하는 방식에 따라서 다릅니다. 우선은 각 자료형의 사용방법을 아는 것이 더 중요하니 기본적인 문법(조건문, 반복문)과 자료형을 다루는 방법을 모두 올리고 나서 메모리에 자료(data)를 저장하는 방식에 대해서 알아보겠습니다.

반응형

댓글