본문 바로가기

프로그래밍 강좌/파이썬 - 데이터 분석

[데이터 분석][Python] 파이썬 기초 문법 (2) - 리스트 list 자료구조 data structure append extend 인덱싱 슬라이싱 indexing

이번에는 파이썬 기초 문법 두번째 강의로, 지난 강의 때 숫자 자료형에 대해 알아 봤고,

이번에는 data structure 인 자료구조 중에서 list 에 대해 알아보겠습니다.

Data Structure

파이썬에서 사용되는 자료 구조의 종류를 나열해봤고, 그 종류별로 특징을 비교해 봤습니다.

파이썬을 사용할 때 1차원 데이터의 경우에는 리스트 또는 딕셔너리를 가장 많이 사용합니다. 그래서 저도 리스트 딕셔너리를 중심으로 설명을 드릴꺼에요. 튜플 리스트와 비슷하지만 길이 원소 변경이 불가하기(C언어에서의 const 속성과 유사함) 때문에 많이 쓰이지 않습니다.

리스트 list

리스트는 대괄호를 이용하여 표현합니다. 대괄호 안에 순서대로 데이터를 넣어주고, 데이터 타입은 어느 타입이든 가능합니다. 예를 들어 숫자, 문자열, bool, 심지어 다른 자료구조도 가능합니다. 하지만 하나의 리스트에는 반드시 한 종류의 타입만 넣어야 합니다.

리스트도 순서가 있는 타입이기 때문에 인덱싱 슬라이싱이 가능합니다. 문자열과 마찬가지로 인덱싱과 슬라이싱이 가능합니다.

리스트도 문자열과 마찬가지로 in 연산자를 사용할 수 있습니다. 원소 전체가 있어야 True를 반환하는 점! 잊지 마세요.

그리고 append()  extend()가 중요한데, 예전 버전에서는 extend 에 리스트를 넣지 않으면 안되었던 것 같은데 오늘 다시 해보니까 원소도 들어갈 수 있네요. 개선되었나봐요.

어찌되었든 append()는 원소로, extend()는 리스트로 추가가 된다는 점 꼭 챙기세요~!

 

마지막으로 문자열에서 잠깐 살펴봤던 split join을 사용하여 문자열과 리스트로 상호 변환이 가능합니다. tsv(탭으로 구분된 형식), csv(콤마로 구분된 형식) 형태의 파일을 생성할 때 유용하게 사용될 수 있습니다. sep 은 구분자로써 " ", "/", "\t", "\n' 등이 사용될 수 있습니다.

리스트에 아래와 같은 메소드를 추가로 사용할 수 있습니다.

list_x.count(x)
리스트에서 x가 출현한 횟수를 반환
list_x.insert(i, x)
index i 위치에 x를 삽입
list_x.pop(i)
리스트에서 index i 원소를 제거하면서 i를 반환, i를 생략하면 마지막 원소 제거
list_x.remove(x)
x를 찾아 제거