TigerCow.Door

'파이썬이란'에 해당되는 글 2건


안녕하세요. 오랜만에 파이썬 포스팅입니다.

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

이후 튜플이라는 자료형에 대해서도 알아볼텐데, 리스트와 혼동이 있을 수 있으니 확실히 이해하고 연습하고 넘어가세요.


1. 리스트 자료형


우리는 지난 포스팅들에서 숫자와 문자열에 대해서 알아보았습니다.

하지만 이러한 것들로 프로그래밍을 진행하기엔 아직 부족합니다. 예를 들어 특정 숫자들의 집합이라는 개념을 표현하는 것은 쉽지 않습니다.

파이썬에서는 이러한 것을 적절히 표현하기 위해 리스트라는 자료형이 있습니다.


먼저, 리스트 자료형은 아래와 같은 구조를 가지게 됩니다.


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


이러한 구조를 통해 아래와 같은 리스트들을 만들 수 있습니다.



위의 예시들중, list1과 같이 비어있는 리스트도 존재할 수 있으며, 특히 파이썬에서는 리스트 내부 요소들간의 자료형이 서로 상이할 수 있습니다. 또한 리스트 내부에 리스트 자료형 또한 가질 수 있죠.

즉, 리스트 내부의 요소는 어떠한 자료형이든 가능합니다.



2. 리스트의 인덱싱과 슬라이싱


문자열에 대해서 학습할때 했던 인덱싱과 슬라이싱이 기억나시나요?

리스트 자료형에서 또한 인덱싱과 슬라이싱이 가능합니다.


먼저, 인덱싱에 대해서 알아보겠습니다.

아래와 같은 리스트가 존재합니다.



여기서, list_indexing[0]은 list_indexing이라는 리스트에서 0번째 요소(첫번째 요소)를 말합니다.

그렇다면, list_indexing에서 2번째요소와 3번째 요소의 합은 어떻게 구할까요?

바로 아래와 같습니다.



문자열과 같이 맨 앞에 있는 요소가 1번째가 아닌, 0번째인 것을 유의하시길 바랍니다.

또한, 문자열과 같이 list_indexing[-1]은 해당 리스트의 맨 마지막 요소를 가리킵니다.


그렇다면 한번 더 해보도록 하겠습니다.

list_indexing[4]는 무엇을 출력할까요?



list_indexing에서 4번째요소는 ["Hello","List indexing"]이라는 리스트 자료형인 요소입니다.

즉, list_indexing[4] = ["Hello","List indexing"] 인 것입니다.

그럼, list_indexing을 통해 "Hello"라는 문자열을 어떻게 가져올까요? 바로 아래와 같습니다.



그렇다면, 리스트 슬라이싱은 어떻게 하는 것일까요?

이 또한 문자열 슬라이싱과 매우 유사합니다.

아래와 같은 리스트가 존재합니다.



리스트 슬라이싱 또한 문자열 슬라이싱에서 학습했던 것을 기억하시면 됩니다.



3. 리스트 연산자


문자열 연산에 대해서, + 기호를 이용해 문자열 두개를 더하고, * 기호를 이용해서 반복했던 것 기억하시나요?

리스트 역시 문자열과 같이 그러한 연산이 가능합니다.


먼저 리스트 더하기를 살펴보겠습니다.



위의 그림 처럼, 문자열에서 + 기호가 했던 역할과 같이 리스트에서도 두개의 리스트를 서로 합쳐집니다.



그렇다면, * 기호를 이용한 리스트 반복하기도 살펴보겠습니다.



* 기호 또한, 위의 그림처럼 리스트를 반복하여 새로운 리스트를 만들어냅니다.



4. 리스트 요소 수정하기


그렇다면 리스트 내부에 있는 요소들은 어떻게 수정할까요?

먼저 리스트 내부의 요소 중 하나의 요소에 대해서는 아래와 같이 수정할 수 있습니다.



위의 그림처럼 리스트에서 하나의 요소를 선택하고, 수정하고 하는 값으로 입력하면 됩니다.


그럼 리스트에서 연속된 범위의 값에 대한 수정은 어떻게 할까요?

즉, 하나의 요소를 수정하는 것이 아닌 한번에 여러개의 요소에 대해 수정하는 것입니다.

위에서 했던 것처럼, 수정하고자 하는 요소들을 선택하고 변경될 값을 입력하면 되겠죠?



위의 그림처럼, 변경하고자 하는 요소들의 범위를 입력합니다. (list[3:6])

그리고 이들을 어떤 값으로 수정할지 입력하면 됩니다.


여기서 재밌는 점은, 변경하고자 하는 요소들의 개수와 수정될 값의 개수가 꼭 1:1이 아니어도 된다는 것입니다.

무슨 말인지 아리송하시다면 아래 예시를 확인하시죠.



위의 그림에서 선택된 요소의 범위는, list[1:3]으로써 list[1]과 list[2]의 요소를 선택하였습니다.

그리고 100,200,300,400,500 이라는 5개의 요소로 변경하였습니다.

즉 2개의 요소가 5개의 요소로 변경된 것입니다.


그럼 아래 그림의 차이점에 대해서 한번 고민해볼까요?



동일한 리스트, list1과 list2를 만들고 각각에 비슷해 보이는 명령을 내렸습니다.

하지만 이후 list1과 list2를 보면 서로의 결과가 동일하지 않고, list1의 변경된 요소들에 괄호가 되어있습니다.

결과적으로, 이렇게 바뀐 list1과 list2는 서로 전혀 다른 결과값입니다.


먼저 list1[1] = 10,20,30으로 수정하는 것은 list1에서 list1[1]요소 자체를 (10,20,30)으로 바꾸는 것입니다.

괄호로 묶인 자료형은 튜플이라고 하는 것인데 파이썬에서는 특정 자료형들을 괄호 없이 나열하게 되면 자동적으로 튜플로써 인식하여 소괄호가 생기게됩니다. 자세한 것은 추후 튜플에 관해 알아볼 때 살펴보겠습니다.


그리고 list2[1:2] = 10,20,30으로 수정하는 것은 위와는 좀 다르게, list2에서 list2[1]에서 list[2]사이의 리스트를 10,20,30으로 수정하는 것을 의미합니다.


이러한 수정과정에 있어서 실수가 없도록 주의하시길 바랍니다.



5. 리스트 요소 삭제하기


리스트 요소를 삭제하는 방법으로는 크게 두가지가 존재합니다.

[]를 이용하는 방법, 그리고 함수를 이용하는 방법.

먼저 대괄호([])를 이용하는 방법에 대해서 살펴보겠습니다.



위의 그림처럼 리스트에서 삭제하고자 하는 요소들의 범위를 입력하여 이를 빈 리스트([])로 대체하는 방법입니다.

여기서도 단순히 리스트의 요소를 선택하면 안되고 범위로써 선택해야 합니다.


두번째는 함수를 이용하는 방법입니다.

리스트에서 요소를 삭제하는 del 이라는 함수가 존재합니다.

아래 그림을 통해 어떻게 사용하는지 살펴보겠습니다.



del (삭제하고자 하는 리스트의 요소 = 객체) 이런식으로 사용하면 됩니다.




이렇게 해서 리스트 자료형에 대해서 알아보았습니다.

다음 포스팅에서는 리스트 자료형에서 사용하는 함수들에 대해서 알아보도록 하겠습니다.


블로그 이미지

Tigercow.Door

Web Programming / Back-end / Database / AI / Algorithm / DeepLearning / etc

댓글을 달아 주세요


안녕하세요. 문범우입니다.

최근 파이썬(python)을 이용해서 다양한 웹 프레임 워크도 공부하고, 학교에서 진행하는 이론적인 내용들을 실습할 때 파이썬으로 코드를 작성하다 보니 기초에 대한 부족함이 느껴지네요.

그래서 처음 파이썬 시작할때 샀던 책을 아예 처음부터 제대로 정독해보기로 마음먹었습니다.

책은 박응용님께서 지으신 '점프 투 파이썬'이란 책입니다.

해당 책은 WikiDocs에 오픈되어 있으니 여기를 클릭하셔서 온라인으로도 보실 수 있습니다.

포스팅은 시간날때마다 공부하고 정리하는 느낌으로 진행할 예정이고 책에서 공부한 내용들을 바탕으로 응용한 예제까지 더해서 코드를 정리하려 합니다.

궁금하신 점이나 기타 의문사항은 댓글 및 이메일(doorbw@outlook.com)으로 연락주시면 감사하겠습니다. :)



1. 파이썬(python)이란 무엇인가?


파이썬(python)은 1990년 귀도 반 로섬이라는 개발자에 의해서 개발된 인터프리터 언어입니다.

여기서 인터프리터란, 프로그래밍 언어의 소스 코드를 바로 실행하는 컴퓨터 프로그램 또는 환경을 말합니다.

인터프리터 언어와 상대적인 개념으로 컴파일러 언어가 존재합니다.

컴파일러 언어는 코드의 전체를 모두 변환하여 실행하며,

인터프리터 언어는 위에서 설명드린 바와 같이 소스 코드를 한 줄 단위로 변환하고 실행하는 과정을 반복합니다.

컴파일 언어로는 C, C++, JAVA 등이 있으며 인터프리터 언어로는 python, HTML, SQL, Javascript 등이 있습니다.


파이썬은 아직 한국에서 대중적으로 많은 이용이 되고 있지는 않지만, 해외에서는 교육 목적뿐 아니라 실무에서도 많이 사용되고 있습니다.

많은 사람들이 이용하는 파일 동기화 서비스 중 하나인 드롭박스(Dropbox) 나 웹 프레임 워크 중 하나인 장고(Django) 등이 예시가 될 수 있습니다.



2. 파이썬의 장점 및 특징


물론 각각의 언어가 가지고 있는 특징과 장점들이 존재하겠지만 그 중에서도 파이썬이 보일 수 있는 점들을 몇가지 확인해보겠습니다.


파이썬은 인간다운 언어입니다.

이후 이론을 공부하며 예제를 확인하면서도 아실 수 있겠지만 파이썬의 코드를 확인하시면 마치 영어문장을 써놓은 것처럼 비전공자 또한 읽기가 쉽게 되어 있습니다. 물론 모든 코드가 그런 것은 아니겠지만 상대적으로 다른 언어들과 비교하였을때 제일 인간다운, 읽기 쉬운 언어라고 볼 수 있습니다.


파이썬은 쉽고, 강력합니다.

파이썬의 문법을 공부하다보면 참 쉽고, 간단하다고 느낄 때가 많습니다. 파이썬은 문법 자체가 아주 쉽고 간결하며 사람의 사고 체계와 매우 닮아 있습니다. 

그러함에도 불구하고 파이썬을 통해 매우 다양한 것들을 만들어 낼 수 있습니다. 시스템 유틸리티 제작 및 GUI 프로그래밍은 물론이고 웹 개발 또한 할 수 있으며 pygame이라는 모듈을 사용하여 간단한 게임 또한 손쉽게 만들어 볼 수 있습니다.


파이썬의 특징이나 파이썬으로 할 수 있는 일은 이 외에도 매우 많습니다.

추후 공부하면서 관심이 가는 분야나 궁금한 점에 대해서는 추가적으로 찾아보면서 공부하셔도 좋을 것 같습니다.

또한 댓글을 남겨주시면 아는 선에서 최대한 정보를 드려보도록 하겠습니다. :)


3. 파이썬 설치하기


파이썬을 설치하는 것은 아주 간단합니다. 따라서 설치방법에 대해서는 따로 설명드리지 않고 넘어가겠습니다.

많은 분들이 정리를 잘 해놓으시기도 했고, 공식문서나 점프 투 파이썬의 내용을 참고하셔도 좋을 것 같습니다.

오류가 발생하는 등의 문제점에 대해서는 댓글로 알려주시면 답변드리겠습니다.


이렇게 해서 오늘 파이썬 학습에 대한 오프닝을 진행하였습니다.

다음 포스팅에서는 파이썬의 숫자형과 문자열 자료형에 대해 공부해보도록 하겠습니다.


블로그 이미지

Tigercow.Door

Web Programming / Back-end / Database / AI / Algorithm / DeepLearning / etc

댓글을 달아 주세요