[Python] 8-1장 리스트란?, 리스트 함수(추가, 변경, 삭제, 정렬, 병합 등)

리스트(list)

- 순서를 가지는 객체의 집합

- 시작과 끝을 표시하기 위해 대괄호[] 사용

- 리스트 안에 저장된 각각의 데이터를 항목(item)이라고 함

numbers = [7, 12, 33, 777]
list1 = [1, 2, 'a', 'b', num]  # 리스트는 자료형에 구애받지 않고 사용 가능
empty = []  # 공백 리스트

 

 

 

항목 접근

- 인덱스로 접근

- 인덱스는 0부터 시작

letters = ['A', 'B', 'C', 'D', 'E']
               0    1    2    3    4
letters = ['A', 'B', 'C', 'D', 'E']
print(letters[0])  # A
print(letters[1])  # B

 

 

 

항목 추가

- 리스트.append(항목)

: 리스트 끝에 항목 추가

list = [1, 2, 3]
list.append(4)  ->  list = [1, 2, 3, 4]
heroes = []
heroes.append("슈퍼맨")   # 리스트 끝에 추가
heroes.append("아이언맨")
print(heroes)  # ['슈퍼맨', '아이언맨']

 

 

- 리스트.insert(인덱스, 항목)

: 인덱스 위치에 항목 추가

list = [1, 3, 4]
list.insert(1, 2)  ->  list = [1, 2, 3, 4]
heroes = ["슈퍼맨", "아이언맨", "스칼렛 위치"]
heroes.insert(2, "토르")
print(heroes)  # ['슈퍼맨', '아이언맨', '토르', '스칼렛 위치']

 

 

 

슬라이싱

- 리스트에서 필요한 부분만 자름

list[1:3] : 1번 항목부터 3번 항목 - 1까지
list[:3] : 처음부터 3번 항목 - 1까지
list[1:] : 1번 항목부터 끝까지
list[:] : 처음부터 끝까지
letters = ['A', 'B', 'C', 'D', 'E']
print(letters[1:3])  # ['B', 'C']
print(letters[:3])  # ['A', 'B', 'C']
print(letters[1:])  # ['B', 'C', 'D', 'E']
print(letters[:])  # ['A', 'B', 'C', 'D', 'E']

 

 

 

항목 변경

- 리스트[인덱스] = 값

: 인덱스 위치에 새로운 값으로 변경

: 존재하지 않는 인덱스 사용하면 오류

letters = ['A', 'B', 'C', 'D', 'E']
letters[1] = 'F'
print(letters)  # ['A', 'F', 'C', 'D', 'E']

 

 

 

항목 삭제

- 리스트.remove(항목)

: 삭제하고자 하는 항목을 알 때 사용

letters = ['A', 'B', 'C', 'D', 'E']
letters.remove('C')
print(letters)  # ['A', 'B', 'D', 'E']

 

 

- del 리스트[인덱스]

: 인덱스 사용하여 항목 삭제

letters = ['A', 'B', 'C', 'D', 'E']
del letters[1]
print(letters) # 'A', 'C', 'D', 'E']

 

 

- 리스트.pop()

: 리스트의 마지막 항목 삭제

letters = ['A', 'B', 'C', 'D', 'E']
letters.pop()
print(letters)  # ['A', 'B', 'C', 'D']

 

 

- 리스트.clear()

: 리스트 안의 모든 내용 삭제

letters = ['A', 'B', 'C', 'D', 'E']
letters.clear()
print(letters)  # []

 

 

 

리스트 탐색

- 리스트.index(항목)

: 리스트에서 항목이 몇 번째 위치에 있는지 탐색

letters = ['A', 'B', 'C', 'D', 'E']
if 'C' in letters:  # 만약 letters 리스트 안에 'C'가 있다면
    print(letters.index('C'))  # 2

 

 

 

리스트 정렬

- 리스트.sort()

: 알파벳이면 알파벳 순으로, 숫자는 크기 순으로 정렬

numbers = [5, 7, 2, 1, 3, 9, 6, 8, 4]
numbers.sort()
print(numbers)  # [1, 2, 3, 4, 5, 6, 7, 8, 9]

 

 

- 리스트.reverse()

: 리스트 순서 뒤집기

numbers = [5, 7, 2, 1, 3, 9, 6, 8, 4]
numbers.sort()  # 정렬
numbers.reverse()  # 반대로 뒤집기
print(numbers)  # [9, 8, 7, 6, 5, 4, 3, 2, 1]

 

 

- sorted(리스트)

: 정렬된 새로운 리스트 생성

numbers = [5, 7, 2, 1, 3, 9, 6, 8, 4]
new_numbers = sorted(numbers)
print(new_numbers)  # [1, 2, 3, 4, 5, 6, 7, 8, 9]

 

 

- sorted(리스트, reverse=True)

: 역으로 정렬된 새로운 리스트 생성

numbers = [5, 7, 2, 1, 3, 9, 6, 8, 4]
new_numbers = sorted(numbers, reverse=True)
print(new_numbers)  # [9, 8, 7, 6, 5, 4, 3, 2, 1]

 

 

 

리스트 병합

- 리스트a.extend(리스트b)

: 리스트a에 리스트b 병합

num1 = [1, 2, 3, 4, 5]
num2 = [6, 7, 8, 9, 10]
num1.extend(num2)
print(num1)  # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]