본문 바로가기
판다스/기초 파이썬

[python] 3.5. 자료형 - 리스트

by 김판다t 2024. 10. 30.

데이터 분석 입문을 위한 기초적인 파이썬 내용을 다룹니다. 데이터 분석은 주로 파이썬의 라이브러리인 판다스를 활용해 이루어지며, 이를 위해 기본적인 파이썬 개념에 대한 이해가 필요합니다. 하지만 이것은 파이썬을 완벽하게 숙달해야 한다는 의미는 아닙니다. 그렇기에 판다스와 데이터 분석에 입문할 수 있도록 핵심 파이썬 개념을 간략하게 제공할 것입니다.

 

 

3.5. 자료형 - 리스트

리스트

 

파이썬에서는 정수, 실수 등 단일 값을 나타내는 자료형을 스칼라 자료형이라고 부르며, 리스트와 튜플처럼 여러 데이터를 담을 수 있는 자료형을 컬렉션 자료형이라고 합니다.

리스트는 가장 대표적이고 자주 사용되는 컬렉션 자료형입니다. 리스트는 대괄호([ ]) 안에 콤마(,)로 구분된 데이터를 나열하여 생성할 수 있으며, 여러 값을 효율적으로 다루는 데 매우 유용합니다. 특히 반복 작업을 수행할 때 반복문과 결합하여 자주 활용됩니다.

# 리스트 생성
list1 = ['a', 'b', 'c', 'd', 'e']

# 빈 리스트 생성
empty_list = []
 
인덱싱과 슬라이싱

 

문자열과 마찬가지로, 리스트도 인덱싱과 슬라이싱을 통해 특정 원소를 추출할 수 있습니다. 리스트에서 특정 위치의 값을 가져오려면 인덱스를 사용하며, 인덱스는 첫 번째 원소에서 0부터 시작하기에 두 번째 원소의 인덱스는 1입니다.

# 리스트 list1에서 두 번째 원소 인덱싱
list1[1]
'b'

 

슬라이싱을 사용하면 리스트의 일부를 선택하여 새로운 리스트를 만들 수 있습니다. 이 기능은 특정 범위의 데이터를 선택해야 하는 데이터 분석 작업에서 특히 유용합니다.

# 리스트의 슬라이싱
list1[1:3]
['b', 'c']

 

또한, 리스트는 인덱싱을 통해 값을 변경할 수 있습니다. 

# 인덱싱으로 리스트의 첫 번째 원소를 변경
list1[0] = 'z'
print(list1)  # 결과: ['z', 'b', 'c', 'd', 'e']

 

이는 리스트가 불변성이 없다는 특성 때문입니다. 인덱싱, 슬라이싱, 불변성에 대한 개념은 이후 단원에서 더 자세히 학습할 예정입니다. 여기서는 리스트도 인덱싱과 슬라이싱이 가능하며, 불변성이 없는 자료형이라는 점만 기억하고 넘어가도록 하겠습니다.

 

리스트의 연산

 

파이썬에서는 덧셈 연산자(+)를 사용하여 리스트를 쉽게 연결할 수 있습니다. 이때, 두 객체 모두 리스트여야 한다는 점은 유의해야 합니다.

# 리스트의 연결
[1, 2, 3] + [4, 5]
[1, 2, 3, 4, 5]

 

곱셈 연산자를 사용하여 리스트를 정수와 곱하면 리스트를 반복할 수 있습니다. 

# 리스트의 반복
a = [1, 2, 3]
a * 2
[1, 2, 3, 1, 2, 3]

 

append 메서드로 리스트에 원소 추가

 

리스트에 여러 개의 원소를 추가할 때는 덧셈 연산을 사용할 수 있지만, 하나의 원소를 추가할 때는 append 메서드를 사용하는 것이 좋습니다. append 메서드는 리스트의 끝에 새로운 원소를 추가하여 기존 리스트를 직접 변경합니다. (반면, 곱셈 연산을 통해 리스트를 반복하면 새로운 반복된 리스트가 생성될 뿐, 기존 리스트는 변경되지 않습니다.) 

# append 메서드로 원소 추가 
a = [1, 2, 3] 
a.append(4) # 리스트 a에 원소 4를 추가해 변경한다.
a
[1, 2, 3, 4]
 

메서드는 추후에 학습할 예정이며, 지금은 간단히 객체 뒤에 붙여 사용하는 함수라고 생각하시면 됩니다. 

 

리스트의 길이 구하기

 

len 함수는 리스트의 길이, 즉 원소의 개수를 반환합니다. 

# 리스트 원소의 개수 구하기
b = [3, 2, 1]
len(b)
3

len 함수는 판다스와 같은 데이터 분석 라이브러리에서 가장 자주 사용되는 파이썬 내장 함수 중 하나입니다.

 

range 함수로 정수 리스트 생성하기

 

range 함수는 정수의 순차적 배열을 생성하는 함수로, list 함수와 함께 사용하면 특정 범위의 정수로 이루어진 리스트를 쉽게 생성할 수 있습니다. 

 

# range 함수로 정수를 순차적으로 배열한 리스트 생성
list(range(3, 8))

 

[3, 4, 5, 6, 7] # 3이상 8 미만의 정수 리스트
 

list 함수는 튜플 등의 다른 컬렉션 자료형도 리스트로 변환할 수 있습니다.

 

join 함수로 문자열 리스트 결합

 

파이썬에는 문자열을 결합하는 join 함수가 있습니다. 구분자를 지정하고, 결합할 문자열이 담긴 리스트를 입력하면 각 문자열이 구분자로 구분되어 하나의 문자열로 결합합니다. 이때 리스트의 모든 원소의 자료형이 문자열이어야 합니다.

# 배열의 문자열을 하나로 결합하는 파이썬의 join 함수 
strings = ['A', 'BC', 'DEF']
'/'.join(strings)
'A/BC/DEF'

 

join 함수는 리스트뿐 아니라 튜플, 판다스의 시리즈에도 활용할 수 있습니다.

 

판다스에서 리스트의 활용

 

※ 판다스는 기초 파이썬과 직접 관련이 없으므로, 추후 판다스를 학습한 후에 확인하셔도 됩니다.

파이썬에는 이 외에도 리스트를 효과적으로 처리할 수 있는 다양한 함수와 강력한 기능이 있습니다. 그래서 기본 파이썬에서는 리스트가 반복문과 결합하여 대부분의 작업을 효율적으로 처리하는 중요한 자료형으로 활용됩니다. 그러나 넘파이와 판다스 같은 데이터 분석 라이브러리에서는 리스트보다 기능이 우수한 여러 클래스를 사용해 컬렉션 데이터를 처리하기 때문에, 리스트의 활용도는 상대적으로 낮아집니다. 데이터 분석에서는 리스트가 주로 매개변수에 여러 인수를 입력하는 용도로 사용되며, 리스트 안에 리스트가 포함된 2중 리스트가 2차원 표 데이터를 생성하는 기본 형태로 활용되는 정도입니다. 따라서 본문에서 다룬 내용만 학습해도 충분합니다. 


 

유튜브에서 판다스 강의 중입니다.

https://www.youtube.com/@KimPandas