언어 자료구조 알고리즘/파이썬(Python)

[python] 10. 파이썬을 잘 사용하기 위한 첫 걸음, 리스트를 소개합니다.

언제나휴일 2016. 5. 20. 17:28
반응형

10. 파이썬을 잘 사용하기 위한 첫 걸음, 리스트를 소개합니다.



안녕하세요. 언제나 휴일, 언휴예요.


우리가 어떠한 프로그래밍 언어를 익힌다는 것은 학문적으로 지식을 쌓는다는 것보다는 실용적으로 얼마나 유용하게 사용하는가에 초점을 둘 필요가 있다고 생각합니다. 


물론, 프로그래밍 언어는 프로그래머의 가장 기본적인 부분이라 깊이가 깊어지면 다양한 활동에서 이득을 갖을 수 있어요. 그럼에도 불구하고 프로그래밍 언어를 학문적으로만 접근하는 것보다는 실용적으로 접근하는 것이 학문적인 지식을 쌓는데도 유리하다고 생각해요. 이러한 사견에 이의를 제기하실 분도 있을테고 맞장구 쳐 주실 분들도 계시겠지만 이를 논하는 것은 온라인 카페나 다른 BBS로 넘기고 저는 능글맞게 본론으로 넘어갈게요.


프로그래밍을 하다 보면 같은 종류의 자료를 보관하고 원하는 것을 검색하고 필요한 형태로 수정하는 등의 작업은 늘 있기 마련이예요. 이러한 특징을 갖기에 자료구조[각주:1]와 알고리즘[각주:2]은 프로그래머의 소양 중에 언어 다음으로 두는 이들이 많아요.


파이썬에서는 다양한 종류의 자료구조를 제공하고 있어요. 앞에서 다루었던 TUPLE도 자료구조의 하나였어요. 


그런데 TUPLE은 목록의 값을 변경하지 못하는 특징으로 인해 프로그램 동작 중에 추가, 변경, 삭제, 검색 등의 작업을 해야 할 때에는 적합하지 않다는 한계를 갖고 있어요.


이번에 소개할 리스트는 이러한 한계를 갖고 있지 않으면서 사용하기 간단한 자료구조예요. 다른 언어에서 말하는 배열이나 순차리스트와 비슷하다고 볼 수 있죠. 자료의 양이 많고 복잡해 지면 보다 효과적이고 강력한 형태의 자료구조를 선택해야겠지만 가장 기본이라 할 수 있는 리스트를 적재 적소에 잘 사용하는 것으로도 많은 곳에 사용할 수 있어요.


이번에는 말이 참 많죠. 


앞으로 연속해서 리스트에 관한 게시글을 써 나갈려고 이렇게 장황하게 시작하는 것이니 ^^;;


이번 게시글에서는 튜플과 리스트의 극명한 차이를 확인하고 넘어갈게요.


먼저 TUPLE은 값을 변경할 수가 없어요.

>>> t = 1,2,3

>>> print(t)

(1, 2, 3)

>>> t[0]=2

Traceback (most recent call last):

  File "<pyshell#2>", line 1, in <module>

    t[0]=2

TypeError: 'tuple' object does not support item assignment


하지만 리스트는 변경할 수가 있어요.

>>> l= [1,2,3]

>>> print(l)

[1, 2, 3]

>>> l[0]=4

>>> print(l)

[4, 2, 3]

파이썬에서 TUPLE과 리스트의 차이점을 보여주는 예제


이 외에 리스트는 항목을 지우거나 원하는 위치에 추가, 분리 등의 많은 작업을 할 수 있어요.


다음 게시글부터 리스트를 효과적으로 사용할 수 있는 다양한 기능들을 살펴보기로 해요.


그럼 다음 게시글에서 만나요.


오늘도 행복한 하루~


파이썬에 관한 게시글은 3분이라는 시간에 볼 수 있게 작성하고 있어요. 자신의 목적에 맞게 속도 조절하세요.

  1. [자료구조] 자료를 보관하는 논리적인 구조를 말합니다. 선형적인 구조로 자료를 보관하는 배열, 연결리스트, 스택, 큐를 비롯하여 비선형적인 구조로 자료를 보관하는 트리, 그래프, 해쉬 등이 있어요. [본문으로]
  2. [알고리즘] 문제를 해결하기 위한 논리 집합을 말해요. 반복적인 방법으로 문제를 해결하거나 재귀적으로 해결, 분할하여 정복하기, 동적 프로그래밍, 탐욕 알고리즘처럼 기초적인 알고리즘에서 부터 의사 결정 알고리즘까지 다양하며 끝이 없는 분야죠. [본문으로]
반응형