본문 바로가기
프로그래밍/파이썬 공부하기

Python 공부하기 - 4 (리스트)

by _OlZl 2024. 1. 26.

 

2024.01.24 - [프로그래밍/파이썬 공부하기] - Python 공부 - 3 (클래스, 메서드, 인스턴스, 객체, 속성)

 

Python 공부 - 3 (클래스, 메서드, 인스턴스, 객체, 속성)

2024.01.23 - [프로그래밍/파이썬 공부하기] - Python 공부 - 2 (if문, for문) Python 공부 - 2 (if문, for문) 2024.01.21 - [프로그래밍/파이썬 공부하기] - 파이썬 공부하기 - 1 (자료형) 파이썬 공부하기 - 1 (자료형

olzl07.tistory.com

이전에는 클래스, 메서드, 객체 등에 대해 알아봤습니다. 오늘부터는 리스트, 딕셔너리, 튜플 등에 대해 알아볼 예정이고, 그 첫번째로 리스트에 관해 가장 먼저 알아보겠습니다.


리스트 (List)

리스트란 순서가 있는 수정가능한 객체들의 집합입니다. 말 그대로 수정, 삭제, 추가가 가능하며 여러 원소들을 저장하고 싶을 때 가장 많이 쓰는 자료형입니다.

 

리스트 선언, 리스트 사용법 등에 대해서는 굳이 다루지 않겠습니다.


리스트 인덱싱, 슬라이싱 (List Indexing, Slicing)

  • 리스트 인덱싱

리스트에는 인덱스가 있기 때문에 인덱스로 접근이 가능합니다.

인덱스는 첫번째 요소부터 0,1, 2 ... 순으로 부여되고 이를 통해 접근이 가능합니다.

num = [1, 2, 3, 4, 5]
print(num[0])
print(num[1])
print(num[2])
print(num[3])
print(num[4])
1
2
3
4
5

 

킹갓파이썬에서는 리스트 인덱싱 할 때 음수 값도 허용됩니다.

음수로 인덱싱을 하면 역순으로 인덱싱됩니다.

num = [1, 2, 3, 4, 5]
print(num[-1])
print(num[-2])
print(num[-3])
print(num[-4])
print(num[-5])
5
4
3
2
1

 

덕분에, 마지막 요소를 찾으려고 굳이 리스트의 길이를 구할 필요 없이 -1로 손쉽게 구할 수 있습니다.

 

  • 리스트 슬라이싱

리스트 슬라이싱은 리스트의 특정 부분을 잘라내는 것을 의미합니다. 사용법은 다음과 같습니다.

리스트이름[시작인덱스:종료인덱스:간격]

이렇게 슬라이싱을 할 시 리스트의 시작인덱스 ~ 종료인덱스-1 의 요소가 잘리게 됩니다.

 

시작인덱스를 생략하면 자동으로 처음부터로 인식되고, 종료인덱스를 생략하면 자동으로 끝까지로 인식됩니다. 간격은 생략할 시 자동으로 1로 지정됩니다.

num = [1, 2, 3, 4, 5]

print(num[1:3:1])
print(num[2:4])
print(num[:2:2])
print(num[1::2])
print(num[::2])
print(num[::-1])
print(num[4:1:-2])
[2, 3]
[3, 4]
[1]
[2, 4]
[1, 3, 5]
[5, 4, 3, 2, 1]
[5, 3]

리스트 관련 함수

다음은 리스트 관련 내장함수들입니다.

  • 요소 추가

리스트.append(값) : 리스트 마지막에 값 추가

리스트.insert(인덱스, 값) : 리스트의 입력 인덱스에 값 추가

리스트.extend(값) : 리스트 마지막에 값 추가

리스트1 += 리스트2 : 리스트 합치기

(append : 값 하나 추가, extend : 이터러블 전체 추가)

fruit1 = ['apple', 'banana', 'orange', 'strawberry']
fruit2 = ['apple', 'banana', 'orange', 'strawberry']
fruit3 = ['apple', 'banana', 'orange', 'strawberry']
fruit4 = ['apple', 'banana', 'orange', 'strawberry']

fruit1.append('watermelon')
fruit2.insert(1, 'watermaelon')
fruit3.extend(['watermelon', 'coconut'])
fruit4 += ['coconut', 'lemon']

print(fruit1, fruit2, fruit3, fruit4, sep = '\n')
['apple', 'banana', 'orange', 'strawberry', 'watermelon']
['apple', 'watermaelon', 'banana', 'orange', 'strawberry']
['apple', 'banana', 'orange', 'strawberry', 'watermelon', 'coconut']
['apple', 'banana', 'orange', 'strawberry', 'coconut', 'lemon']

 

  • 요소 삭제

del 리스트[인덱스] : 리스트의 인덱스 값 지움

리스트.pop(인덱스): 리스트의 인덱스 값 지움

리스트.remove(값) : 리스트의 값 지움

fruit1 = ['apple', 'banana', 'orange', 'strawberry']
fruit2 = ['apple', 'banana', 'orange', 'strawberry']
fruit3 = ['apple', 'banana', 'orange', 'strawberry']

del fruit1[1]
fruit2.pop(3)
fruit3.remove('orange')

print(fruit1, fruit2, sep = '\n')
['apple', 'orange', 'strawberry']
['apple', 'banana', 'orange']
['apple', 'banana', 'strawberry']

 

  • 숫자, 요소 뽑아내기

len(리스트) : 리스트의 길이 반환

리스트.index(값) : 리스트 내 해당 값이 가장 먼저 나오는 인덱스 반환

sum(리스트) : 리스트 내의 모든 요소의 합 반환

max(리스트) : 리스트 내의 최댓값 반환

min(리스트) : 리스트 내의 최솟값 반환

(sum, max, min은 당연히 리스트 내 요소가 모두 정수 / 실수일 때만 작동)

enumerate(리스트) : 리스트의 인덱스와 요소를 쌍으로 추출

리스트.count(값) : 리스트 내의 값의 개수 반환

num = [7, 2024, 26.0, 1117, 111.1, 7]

print(len(num))
print(num.index(7))
print(sum(num))
print(max(num))
print(min(num))
print(list(enumerate(num)))
print(num.count(7))
6
0
3292.1
2024
7
[(0, 7), (1, 2024), (2, 26.0), (3, 1117), (4, 111.1), (5, 7)]
2

 

  • 복사, 초기화

리스트.copy() : 리스트 복사

리스트.clear() : 리스트 초기화

animals = ['tiger', 'lion', 'elephant', 'red panda']

copied_animals = animals.copy()
animals.clear()

print(animals)
print(copied_animals)
[]
['tiger', 'lion', 'elephant', 'red panda']

 

  • 정렬, 뒤집기

리스트.sort() : 원래 리스트 오름차순 / 내림차순 정렬

 - 기본값 & sort(reverse = False) : 오름차순 정렬, sort(reverse = True) : 내림차순 정렬

리스트.reverse() : 리스트 역순으로 뒤집음

num1 = [1, 10, 3, 982, 177, 88]
num2 = [1, 10, 3, 982, 177, 88]

num1.sort()
print(num1)
num1.sort(reverse = True)
print(num1)

num2.reverse()
print(num2)
[1, 3, 10, 88, 177, 982]
[982, 177, 88, 10, 3, 1]
[88, 177, 982, 3, 10, 1]

 

sorted(리스트) : 리스트 오름차순 / 내림차순 정렬해서 반환

 - 기본값 & sort(리스트, reverse = False) : 오름차순 정렬, sort(리스트, reverse = True) : 내림차순 정렬

reversed(리스트) : 리스트 역순으로 뒤집어 반환

 

  • 확인

요소 in 리스트 : 리스트에 요소가 있으면 True, 없으면 False를 반환함

요소 not in 리스트 : 리스트에 요소가 있으면 False, 없으면 True를 반환함

lst = [1, 'list', 3, 9.24, 'a', 'lion']

print(1 in lst)
print('tiger' in lst)
print(3 not in lst)
print(8.8 not in lst)
True
False
False
True

리스트 컴프리헨션(List Comprehension)

리스트 컴프리헨션에 관해서는 지난 글에서 자세히 다뤘으니 여기서 보시기 바랍니다.

2024.01.23 - [프로그래밍/파이썬 공부하기] - Python 공부 - 2 (if문, for문)

 

Python 공부 - 2 (if문, for문)

2024.01.21 - [프로그래밍/파이썬 공부하기] - 파이썬 공부하기 - 1 (자료형) 파이썬 공부하기 - 1 (자료형) 2024.01.21 - [프로그래밍/파이썬 공부하기] - 파이썬 공부하기 - 0 (시작) 파이썬 공부하기 - 0 (

olzl07.tistory.com


오늘은 이렇게 리스트와 여러 리스트 관련 내장함수에 관해 알아보았습니다.