brunch

You can make anything
by writing

C.S.Lewis

by 박경아 Mar 15. 2021

9. 리스트, 데이터 목록 혹은 집합

파이썬으로 데이터 분석하기

앞서 문자열이나 수, 불린형과 같은 데이터 유형에 대해 공부했지만 리스트는 여러 개의 데이터를 모아 놓은 데이터 유형을 말한다. 말 그대로 여러 값을 모아 놓은 데이터의 목록 또는 집합이라 생각하면 된다. 하나의 변수를 할당해 사용하는 것도 가능하고 나중에 배울 파이썬의 데이터 분석 라이브러리 ‘판다스’에서 데이터 테이블을 만들 때 여러 개의 데이터 값을 리스트의 형태로 넣는다.


먼저 리스트는 대괄호[ ]를 사용해 만들고, 리스트 안에는 문자열, 숫자, 불린형 데이터를 모두 넣을 수 있다. 다른 데이터 유형을 섞어 만들 수도 있고, 심지어 리스트 안에 리스트를 넣는 것도 가능하다. 리스트 안에 들어가는 값을 요소(element) 또는 아이템(item)이라고 한다.  


반 친구들의 이름을 모아 놓은 리스트를 만들어 출력해 보자. 그냥 문자열을 출력(print)할 경우 문자열을 둘러싼 따옴표와 값을 구분하는 콤마가 없어지지만 리스트의 경우 출력을 해도 대괄호, 따옴표, 콤마가 유지되는 것을 볼 수 있다.


리스트를 출력하면



데이터 컨테이너들  - 리스트, 튜플, 딕셔너리


참고로 파이썬에는 여러 개의 값을 담는 데이터 유형으로 리스트 외에 튜플이나 딕셔너리와 같은 것이 있다. 리스트를 배우는 김에 간단히 비교해 보고 넘어가자. 리스트는 문자열이나 수 등의 데이터를 섞어 넣어도 되고 데이터 간 중복도 가능하다.


튜플은 리스트와 마찬가지로 모두 집어 넣을 수도 있고 중복도 가능하지만, 수정이 불가능하고 대괄호[ ]가 아닌 괄호()를 사용한다는 점이 다르다. 딕셔너리는 키값과 값을 쌍으로 가지는 데이터 유형으로 역시 나중에 판다스에서 데이터 테이블을 만들 때 두 번째 방법으로 사용할 수 있다.


my_list = [1, 2, 3, 1]  → 중복 및 수정 모두 가능
my_tuple = (1, 2, 3, 1) → 중복은 가능하지만 수정 불가
my_dictionary = {'key1': 'room1', 'key2':'room2'}



리스트를 다루는 방법


이제 리스트를 다루는 방법을 배워보자. 앞서 문자열을 배울 때 그 개념과 함께 특정 문자나 문자열 구간을 출력하는 등 문자열을 다루는 함수들에 대해 배웠다. 리스트를 다루는 방법을 앞서 배운 문자열의 조작법과 비교해 가면 배워보자.


우선 리스트 역시 문자열과 마찬가지로 인덱싱을 통해 특정 요소를 출력할 수 있다. 리스트의 첫 번째 요소를 출력하고 싶다면? 그렇다. 파이썬은 항상 0부터 카운트하므로 인덱스 0을 사용해야 할 것이다.

리스트 인덱싱


그럼 리스트 안의 리스트의 특정 요소를 가르키고 싶을 때는? 해당 리스트의 인덱스 번호와 그 리스트 안의 해당 인덱스 번호를 나란히 써주면 된다. 아래 리스트의 리스트에서 Sunny의 점수를 출력해 보자. Sunny는 리스트의 첫 번째 요소이고, 점수는 해당 리스트 안에서 0번 위치에 있으므로 아래와 같이 쓸 수 있다.


리스트의 리스트  인덱싱


리스트의 특정 부분을 모두 선택하고 싶다면 문자열과 마찬가지로 슬라이싱을 사용하면 된다. 리스트 안의 리스트에서 첫 번째 요소를 제외하고 두 번째부터 모든 요소를 선택해 보자. 인덱싱은 1번에서 시작해 모두 선택하고 싶다면 파이썬에서 끝번호는 항상 포함되지 않으므로 마지막 인덱스 번호를 비워 놓아야 할 것이다.



리스트 역시 문자열과 마찬가지로 다른 리스트와 더할 수 있다. 또한, 리스트에 수를 곱한다면 리스트 안의 요소가 3배로 복제되어 늘어난다. (* 리스트 안의 모든 요소에 3을 곱하고 싶다면 뒤에서 배울 리스트의 이해라는 방법을 사용해야 한다)

리스트에 리스트 더하기, 리스트에 곱하기


또한, 리스트는 요소의 값을 수정하거나 삭제할 수 있는데 앞서 배운 문자열이나 튜플은 개별문자나 요소를 수정하거나 삭제할 수 없다.

리스트의 세 번째 요소를 4로 변경



리스트 관련 파이썬 내장 함수


마지막으로 리스트와 함께 사용되는 파이썬의 내장 함수들에 대해 공부하자. 리스트의 개수를 세거나 리스트에 새로운 아이템을 추가하거나 삭제하는 등  리스트를 다루는 데 유용한 방법들이니 잘 익혀두면 좋다.


참고로 아래 리스트 관련 함수 가운데 len()이나 .count(), .index()는 문자열에서도 공통적으로 사용되는 함수였다.


zip() - 두 개 이상의 리스트를 합쳐 새로운 리스트를 만들 수 있다.
range(num) - 특정 범위 안의 수 리스트를 자동으로 채워준다.
len(list) - 리스트 안의 요소의 개수를 세어준다.
.sort() - 리스트 안의 요소를 알파벳 순서로 나열한다.
.append(sub) - 리스트 마지막에 새로운 값을 추가한다.
.insert(index, sub) - 리스트 해당 인덱스에 새로운 값을 추가한다.
.remove(sub) - 리스트에서 가장 먼저 나오는 해당 값을 제거한다.
.pop(index) - 특정 인덱스 값을 제거한다, 디폴트 값은 마지막 요소를 제거
.count(sub) - 리스트에서 특정 요소의 개수를 세어준다.
.index(sub) - 리스트에서 특정 요소의 위치(인덱스)를 반환한다.




* 참고자료

캐글 강의 https://www.kaggle.com/learn/overview

점프투파이썬 https://wikidocs.net/book/1

파이썬 초보 학습자를 위한 4시간에 배우는 파이썬 기초문법

https://joshua-mobile-choi-1756.trinket.io/python-3-4#/tasks/task-1-print-statement

How to think like a computer scientist : Learning with Python 3

http://openbookproject.net/thinkcs/python/english3e/

매거진의 이전글 8. 내가 원하는 것을 만들어 쓴다, 함수
작품 선택
키워드 선택 0 / 3 0
댓글여부
afliean
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari