생활속 보물창고 : 일상 속 유용한 정보를 공유드립니다.

안녕하세요 엘빈입니다. 저번 포스팅까지 숫자형, 문자열 등 기본 자료형에 대해서 알아보았는데요. 기본 자료형으로도 많은 연산을 수행할 수 있지만 부족한 감이 없지 않아 있습니다. 파이썬은 기본형을 제외한 다양한 자료형을 제공하는데요. 그 중 가장 유용하게 쓰이는 것이 리스트 자료형입니다. 이번 포스팅에서는 리스트 자료형에 대해서 상세히 알아보겠습니다.

 

 

 

 

  리스트 자료형이란?

 

여러가지 값들을 저장할 때 어떻게 해야할까요?

 

단순히 생각하지면 5개의 값이 필요할 때 5개의 변수를 선언하면 될 것입니다.

 

하지만 100개의 값이 필요할 때 100개의 변수를 선언한다면 너무나도 힘든 일이 될 것입니다.

 

 

리스트 자료형은 여러 값들을 보다 편리하게 저장하기 위해 등장하였습니다.

 

 

다른 프로그래밍 언어의 경우 배열이라는 개념을 도입하여 여러가지 값들을 표현합니다.

 

파이썬에서 제공하는 리스트 또한 배열과 거의 유사합니다.

 

 

하지만 리스트 자료형이 가진 장점이 있습니다.

 

바로 값들의 자료형 혼합이 가능하다는 점입니다.

 

 

다음은 c# 언어 배열입니다.

    1 int[] num = {1,2,3,4} // 잘 작동함

    2 int[] num = {1,2,'3','4'} // 작동하지 않음

 

먼저 배열을 선언할 때 자료형을 지정해야 합니다. 따라서 가지는 원소값들은 모두 선언된 자료형을 따라야 합니다. 하지만 이전 포스팅에서 배웠듯이 파이썬은 자료형을 선언하지 않습니다.

 

파이썬의 리스트 자료형 선언문은 다음과 같습니다.

 

    1 a = [1,2,'3','4']

    2 

    3 print(a) # [1, 2, '3', '4']

 

파이썬 리스트 자료형 역시 가변적인 변수이기 때문에 원소값들의 자료형 혼합이 가능합니다.

 

리스트 자료형 꺾은 괄호 안에 자료형 변수에 넣고자 하는 값들을 삽입하여 선언합니다.

 

정수형 1,2와 문자열 3,4 값을 리스트 자료형 변수 a가 가지고 있는 것입니다.

 

 

 

 

  리스트 자료형 인덱싱(indexing)과 슬라이싱(slicing)

 

리스트 자료형 역시 문자열처럼 인덱싱과 슬라이싱 기능을 제공합니다.

 

 

(1) 인덱싱(indexing)

다음과 같이 코드를 작성해봅시다.

 

    1 a = [1,2,'3','4',[5,6,7],'Hello']
    2 
    3 print(a[0]) # 1
    4 print(a[2]) # 3
    5 print(a[4][1]) # 6
    6 print(a[-1]) # Hello

 

코드와 같이 인덱스 값을 통해서 배열 원소값을 찾을 수 있습니다.

 

 

 

리스트 자료형은 원소 값으로 또 다른 리스트 자료형 변수를 가질 수 있습니다.

 

5번째줄 코드를 보면 a에서 인덱스 값 '4' 의 원소값을 찾은 후 이것에 인덱스 값 '1'의 원소값을 찾을것이다라는 뜻입니다.

 

 

문자열과 마찬가지로 인덱스 값이 -1 일 대는 가장 마지막 원소값을 의미합니다.

 

 

(2) 슬라이싱(Slicing)

다음과 같이 코드를 작성해봅시다.

 

    1 a = [1,2,'3','4',[5,6,7],'Hello']
    2 
    3 print(a[0:3]) # [1, 2, '3']
    4 print(a[3:]) # ['4', [5, 6, 7], 'Hello']
    5 print(a[4][0:1]) # [5]
    6 print(a[:-1]) # [1, 2, '3', '4', [5, 6, 7]]

문자열과 마찬가지로 인덱스 값 중간에 ":"을 포함시켜 범위를 지정합니다.

 

해당 범위내의 모든 원소값을 찾아 출력해줍니다.

 

 

마찬가지로 시작값과 끝 값을 생략할 수 있습니다.

 

 

이전 문자열 포스팅에서 인덱싱과 슬라이싱에 대해서 자세히 작성해두었습니다.

 

아직 헷갈리시는 분들은 아래 링크를 통해 학습해주시기 바랍니다.

 

 

파이썬(python) 문자열 인덱싱과 슬리이싱 정리

안녕하세요 엘빈입니다.저번 포스팅에서는 문자열 함수 및 표현 방법에 대해서 알아보았습니다. 문자열은 여러개의 문자 데이터가 합쳐진 만큼 실제 개발 환경에서 활용하는 방법이 다양합니다. 이번 포스팅에서는..

alvine.tistory.com

 

  리스트 연산하기

 

다음과 같이 코드를 작성해봅시다.

    1 a = [1,2,3]
    2 b = [4,5,6]
    3 
    4 print(a+b) # 리스트 더하기 : [1, 2, 3, 4, 5, 6]
    5 print(a*2) # 리스트 반복 : [1, 2, 3, 1, 2, 3]
    6 print(len(a)) # 리스트 길이 구하기 : 3

 

(1) 리스트 더하기

4번쨰 줄과 같이 리스트 자료형끼리 더하기 연산이 가능합니다. 이 경우 a와 b의 모든 원자값들이 합쳐져 화면에 표시됩니다.

 

(2) 리스트 반복

리스트 자료형에 곱셈 연산을 하면 해당 원자값들이 곱한 횟수만큼 반복되어 화면에 출력됩니다.

 

(3) 리스트 길이 구하기

 len() 함수를 통해 리스트 변수의 길이를 구할 수 있습니다.

 

 

  리스트 수정 삭제

 

다음은 리스트 수정/삭제 예제 코드입니다.

    1 a = [1,2,3]
    2 
    3 a[1] = 5
    4 print(a) # [1, 5, 3]
    5 del a[2]
    6 print(a) # [1, 5]

 

다음과 같이 리스트 자료형은 수정과 삭제가 간단합니다.

 

(1) 수정

리스트 변수 원자값을 수정하려면 해당 인덱스 값에 새로운 값을 할당해주면 끝입니다.

 

(2) 삭제

리스트 변수 원자값을 삭제하려면 해당 인덱스로 원자값을 찾은 뒤 앞에 del 명령어를 통해 삭제를 진행합니다.

 

 


마무리

 

지금까지 리스트 자료형에 대한 기본적인 내용들을 학습해보았습니다.

 

리스트 자료형을 잘 활용해야 나중에 복잡한 프로그램을 개발할 때 좀 더 간결하게 코드를 작성할 수 있습니다.

 

꼭 이해하시고 다음으로 넘어가시기 바랍니다.

반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band