2024.01.24 - [프로그래밍/파이썬 공부하기] - Python 공부 - 3 (클래스, 메서드, 인스턴스, 객체, 속성)
이전에는 클래스, 메서드, 객체 등에 대해 알아봤습니다. 오늘부터는 리스트, 딕셔너리, 튜플 등에 대해 알아볼 예정이고, 그 첫번째로 리스트에 관해 가장 먼저 알아보겠습니다.
리스트 (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 공부하기 - 6 (세트) (0) | 2024.06.30 |
---|---|
Python 공부하기 - 5 (딕셔너리, 튜플) (1) | 2024.01.27 |
Python 공부 - 3 (클래스, 메서드, 인스턴스, 객체, 속성) (0) | 2024.01.24 |
Python 공부 - 2 (if문, for문) (1) | 2024.01.23 |
Python 공부 - 1 (자료형) (0) | 2024.01.21 |