- 리스트 생성
list_a = [a1, a2, a3]
- 인덱싱
왼쪽(앞)부터 순서대로 [0], [1], [2], ...
오른쪽(뒤)부터 순서대로 [-1], [-2], [-3], ...
list_a[0] == a1
list_a[1] == a2
list_a[2] == a3
list_a[-1] == a3
list_a[-2] == a2
- 주요 메소드
list_a.append(a4) # 가장 끝에 항목 추가
# list_a = [a1, a2, a3, a4]
list_a.insert(2, k) # 인덱스에 항목 추가 (IndexError 발생 X)
# list_a = [a1, a2, k, a3, a4]
x = list_a.pop() # 인덱스의 항목을 반환하고 리스트에서 제거
# x = a4
# list_a = [a1, a2, k, a3]
list_b = [b1, b2, b2, b3, b4]
num_b2_index = list_b.index(b2) # 처음 나타나는 항목의 인덱스 반환
# num_b2_index = 1
list_b.remove(b2) # 처음 나타나는 항목을 제거
# list_b = [b1, b2, b3, b4] (list_b[1]의 b2가 제거됨)
list_n = [1, 4, 3, 2, 5, 8]
list_n.sort() # 오름차순 정렬. reverse=True -> 내림차순
# list_n = [1, 2, 3, 4, 5, 8]
- 리스트 관련 내장 함수
len(list) # 리스트의 길이 반환 (== 마지막 인덱스 + 1)
sum(list) # 합계 반환 (자료형이 숫자인 경우에만 가능)
max(list) # 최댓값 반환, 자료형이 문자열인 경우 알파벳 순서가 가장 뒤인 문자열 반환
min(list) # 최솟값 반환, 자료형이 문자열인 경우 알파벳 순서가 가장 앞인 문자열 반환
sorted(list) # 오름차순으로 정렬된 리스트 반환
- list.sort(): 원본 리스트를 정렬
- sorted(list): 정렬된 리스트를 반환
- 슬라이싱
리스트[시작값:종료값:증가량]
리스트의 인덱스를 범위지정
- range 와 동일한 방식. 시작값부터 종료값-1 인덱스까지 증가량 간격으로 리스트를 추출 (새로운 리스트로 생성)
- 얕은 복사 / 깊은 복사
- 얕은 복사 (shallow copy)
얕은 복사는 동일한 메모리 주소를 가리키게 함 (실제로 서로 같은 리스트임)
list_a = [1, 2, 3, 4]
a_copy = list_a
- a_copy를 변경하면 list_a도 바뀜. list_a를 변경하면 a_copy도 바뀜.
- 깊은 복사 (deep copy)
깊은 복사는 새로운 메모리 주소에 리스트를 생성하게 함 (실제로 서로 다른 리스트임)
list_a = [1, 2, 3, 4]
a_copy1 = list(list_a)
a_copy2 = list_a[:]
- a_copy를 변경하더라도 list_a가 바뀌지 않음. list_a를 변경하더라도 a_copy가 바뀌지 않음.
- a_copy2는 슬라이싱을 활용한 방법
- 함축
[표현식 for 항목 in 리스트 if 조건]
- 예시 (1부터 10까지 짝수의 제곱)
list_num = [x**2 for x in range(1,10+1) if x % 2 == 0]
# list_num = [4, 16, 36, 64, 100]
- 2차원 리스트
리스트 안에 리스트가 존재하는 형태
- 리스트[행인덱스][열인덱스] 로 항목에 접근 가능
a = [[1, 2], [3, 4]]
# a = [1 2]
# [3 4]
a[0][0] == 1
a[0][1] == 2'Coding > Python' 카테고리의 다른 글
| Ch 9. 문자열 (0) | 2025.07.03 |
|---|---|
| Ch 8. 튜플, 세트, 딕셔너리 (0) | 2025.07.03 |
| Ch 6. 함수 (0) | 2025.04.21 |
| Ch 4. 조건문 / Ch 5. 반복문 (0) | 2025.04.20 |
| Ch 3. 수식과 연산자 (0) | 2025.04.20 |