내일배움캠프/Python

[Python]리스트의 슬라이싱, 정렬

dydatablog 2024. 12. 9. 19:56

리스트(List)란? : 여러 항목들을 담을 수 있는 가변(mutable)한 시퀀스(sequence)이다. 대괄호 "[ ]" 를 사용하여 리스트를 만들 수 있다.

 

리스트의 인덱싱(Indexing)

  • 인덱싱: 리스트에서 특정 위치의 값에 접근하는 방법
  • 파이썬은 맨 처음을 가리키는 인덱스가 0 (1이 아님에 유의)
numbers = [1, 2, 3, 4, 5]

# 첫 번째 요소에 접근하기
first_number = numbers[0]
print("First number:", first_number) # 출력:First number: 1

# 두 번째 요소에 접근하기
second_number = numbers[1]
print("Second number:", second_number) # 출력:Second number: 2

# 마지막 요소에 접근하기
last_number = numbers[-1]
print("Last number:", last_number) # 출력:Last number: 5

# 음수 인덱스를 사용하여 역순으로 요소에 접근하기
second_last_number = numbers[-2]
print("Second last number:", second_last_number) # 출력:Second last number: 4

 

 

리스트의 다양한 메서드(Methods)

  • append(): 리스트에 항목을 추가
my_list = [10, 20, 30, 40, 50]
my_list.append(60)
print(my_list) # 출력:[10, 20, 30, 40, 50, 60]
  • extend(): 리스트에 다른 리스트의 모든 항목을 추가
my_list.extend([7, 8, 9]) # 다른 리스트의 모든 항목을 추가
print(my_list)  # 출력: [1, 2, 3, 4, 5, 6, 7, 8, 9]
  • insert(): 리스트의 특정 위치에 항목을 삽입
my_list = [1, 2, 3, 4, 5]
my_list.insert(2, 10) # 두 번째 위치에 값 삽입
print(my_list)  # 출력: [1, 2, 10, 3, 4, 5, 6, 7, 8, 9]
  • remove(): 리스트에서 특정 값을 삭제
my_list = ['car', 'bus', 'bike', 'train']
my_list.remove('train')
print(my_list) # 출력:['car', 'bus', 'bike']
  • pop(): 리스트에서 특정 위치의 값을 제거하고 반환
my_list = [1, 2, 3, 4, 5]
popped_value = my_list.pop(5) # 다섯 번째 위치의 값 제거하고 반환
print(popped_value)  # 출력: 6
print(my_list)  # 출력: [1, 2, 10, 4, 5, 7, 8, 9]
  • index(): 리스트에서 특정 값의 인덱스를 찾기
my_list = [1, 2, 3, 4, 5]
print(my_list.index(4)) # 출력: 3 (값 4의 인덱스)
  • count(): 리스트에서 특정 값의 개수를 셈
my_list = [1, 2, 3, 4, 5]
print(my_list.count(7)) # 출력: 1 (값 7의 개수)
  • sort(): 리스트의 항목들을 정렬
my_list = [1, 2, 3, 4, 5]
my_list.sort() # 리스트 정렬
print(my_list)  # 출력: [1, 2, 4, 5, 7, 8, 9, 10]
  • reverse(): 리스트의 항목들을 역순으로 뒤집기
my_list = ['red', 'green', 'blue', 'yellow']
my_list.reverse()
print(my_list) # 출력:['yellow', 'blue', 'green', 'red']

 


 

리스트의 슬라이싱 : 리스트의 일부분을 추출하는 것

[시작 인덱스 : 끝낼 인덱스 +1] : 슬라이싱을 할 때 끝에 입력할 인덱스는 내가 선택할 인덱스 +1을 해야한다.

예시)1번째부터 12번째까지의 요소를 가져온다면 [0:13] 

my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

# 1. 일부분만 추출하기
print(my_list[2:5])   # 출력: [3, 4, 5]

# 2. 시작 인덱스 생략하기 (처음부터 추출)
print(my_list[:5])    # 출력: [1, 2, 3, 4, 5]

# 3. 끝 인덱스 생략하기 (끝까지 추출)
print(my_list[5:])    # 출력: [6, 7, 8, 9, 10]

# 4. 음수 인덱스 사용하기 (뒤에서부터 추출)
print(my_list[-3:])   # 출력: [8, 9, 10]

# 5. 간격 설정하기 (특정 간격으로 추출)
print(my_list[1:9:2]) # 출력: [2, 4, 6, 8]

# 6. 리스트 전체를 복사하기
copy_of_list = my_list[:]
print(copy_of_list)   # 출력: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

# 7. 리스트를 거꾸로 뒤집기
reversed_list = my_list[::-1]
print(reversed_list)  # 출력: [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]

 


 

리스트의 정렬

sort()를 통해 정렬이 가능하다.

# 숫자로 이루어진 리스트 정렬 예시
numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5]
numbers.sort()
print("정렬된 리스트:", numbers)  # 출력: [1, 1, 2, 3, 4, 5, 5, 6, 9]

# 문자열로 이루어진 리스트 정렬 예시
words = ['apple', 'banana', 'orange', 'grape', 'cherry']
words.sort()
print("정렬된 리스트:", words)  # 출력: ['apple', 'banana', 'cherry', 'grape', 'orange']

# 내림차순으로 리스트 정렬 예시
numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5]
numbers.sort(reverse=True)
print("내림차순으로 정렬된 리스트:", numbers)  # 출력: [9, 6, 5, 5, 4, 3, 2, 1, 1]

# 리스트의 문자열 길이로 정렬 예시
words = ['apple', 'banana', 'orange', 'grape', 'cherry']
words.sort(key=len)
print("문자열 길이로 정렬된 리스트:", words)  # 출력: ['apple', 'grape', 'banana', 'cherry', 'orange']

'내일배움캠프 > Python' 카테고리의 다른 글

[Python]포맷팅_ { }, f-string  (0) 2024.12.13
[Python]for, while 반복문 연습문제  (0) 2024.12.11
[Python]함수의 매개변수  (0) 2024.11.22
[Python]map, filter, lambda  (0) 2024.11.22
[Python]삼항연산자  (0) 2024.11.22