Python

[Python][기초] 리스트(List)

codingbird1234 2025. 4. 9. 14:00

안녕하세요, codingbird입니다.

지난 시간까지 문자열에 대해서 좀 더 자세히 알아보았습니다.

이번 시간에는 리스트(List)에 대해서 알아보겠습니다.


1. 리스트(List)

리스트(List)란, 여러 값들을 순서대로 저장하는 자료형입니다.

  • '순서대로' 저장하기 때문에, 문자열처럼 인덱스를 통해 각 요소에 접근할 수 있습니다.
  • 또한 문자열과 같은 방식으로 슬라이싱도 가능합니다.
  • 그리고 문자열처럼 더하기, 곱하기 연산이 가능합니다.
  • 리스트에는 다양한 자료형의 값들을 자유롭게 넣을 수 있습니다.

아래 코드를 보겠습니다.

list1 = [1, 2, 3, "apple", "banana", 0.4 ]  # 리스트 만들기 (다양한 자료형)
print(list1)                                # 리스트 프린트 하기
print("-" * 50)

# 리스트 인덱싱
print(list1[0])                             # 인덱스 0의 값 출력 : 1
print(list1[3])                             # 인덱스 3의 값 출력 : apple
print(list1[5])                             # 인덱스 5의 값 출력 : 0.4
print("-" * 50)

# 리스트 슬라이싱
print(list1[1:3])                           # 인덱스 1 ~ 2 출력
print(list1[:3])                            # 처음 인덱스 ~ 인덱스 2 출력
print(list1[2:])                            # 인덱스 2 ~ 마지막 인덱스 출력
print("-" * 50)

# 리스트 더하기
list2 = [1, 2, 3]
list3 = list1 + list2                       # list1과 list2를 합친 list3
print(list3)
print("-" * 50)

# 리스트 곱하기
list4 = list2 * 4                           # list2 4개를 합친 list4
print(list4)

 

다양한 자료형의 값을 담은 "list1"이라는 이름의 리스트를 만들었습니다.

리스트를 만들 때는 대괄호([])로 요소들을 감싸면 됩니다.

인덱스는 0부터 시작하기 때문에, list1의 인덱스 0 값은 첫 번째 요소인 1입니다.

슬라이싱의 경우, 기본적으로 (시작 인덱스)부터 (끝 인덱스 - 1)까지의 값들에 대한 리스트를 의미합니다.


2. 리스트에 대한 여러 가지 작업 (추가, 수정, 삭제 등등)

리스트에 대해서는, 아래와 같은 여러 가지 작업들이 가능합니다.

작업 종류 코드 작성 방법 설명
추가 append(값) 리스트 끝에 해당 값을 추가
추가 insert(인덱스, 값) 해당 인덱스에 해당 값을 추가 (해당 인덱스부터 기존 값들은 하나씩 뒤로 밀림)
추가 extend(다른 리스트) 기존 리스트에 다른 리스트를 합침
수정 a[인덱스] = 새 값 해당 인덱스의 값을 새 값으로 바꿈
삭제 remove(값) 해당 값을 찾아서 첫 번째로 만나는 값을 삭제
삭제 pop() 리스트 끝 값을 꺼내서 반환 (해당 끝 값은 리스트에서 사라짐)
삭제 pop(인덱스) 해당 인덱스의 값을 꺼내서 반환 (해당 인덱스의 값은 리스트에서 사라짐)
삭제 clear() 리스트 내의 모든 값을 삭제 (빈 리스트로 만들기)
정렬 sort() 리스트 내의 값들을 오름차순으로 정렬 (순서 바뀜)
정렬 sort(reverse=True) 리스트 내의 값들을 오름차순으로 정렬 (순서 바뀜)
역순 reverse() 리스트 내의 값들의 순서를 뒤집음 (정렬 X)
길이 확인 len(리스트) 리스트의 길이, 즉 리스트 내 요소들의 개수
포함 여부 어떤 값 in 리스트 어떤 값이 리스트 안에 있으면 True, 없으면 False
포함 여부 어떤 값 not in 리스트 어떤 값이 리스트 안에 없으면 True, 있으면 False
위치 확인 index(값) 해당 값이 있는 첫 번째 인덱스를 반환

 

아래 예시 코드를 통해 위 방법들을 확인해보세요!

 

# 숫자 리스트 만들기
print("리스트 생성 및 출력")
numbers = [5, 3, 4]
print(numbers)
print("-" * 50)

# 추가
print("추가")
numbers.append(4)                           # 리스트 끝에 4 추가
print(numbers)                              # [5, 3, 4, 4]
numbers.insert(2, 100)                      # 인덱스 2에 100을 삽입
print(numbers)                              # [5, 3, 100, 4, 4]
numbers.extend([100, 200])                  # numbers에 [100, 200] 합침
print(numbers)                              # [5, 3, 100, 4, 4, 100, 200]
print("-" * 50)


# 수정
print("수정")
numbers[6] = 300                            # 인덱스 6의 값을 300으로 설정 (200->300)
print(numbers)                              # [5, 3, 100, 4, 4, 100, 300]
print("-" * 50)


# 삭제
print("삭제")
numbers.remove(100)                         # 첫 번째 100만 삭제
print(numbers)                              # [5, 3, 4, 4, 100, 300]
numbers.pop()                               # 마지막 요소 꺼내기 (300 꺼내기)
print(numbers)                              # [5, 3, 4, 4, 100]
numbers.pop(1)                              # 인덱스 1의 요소 꺼내기 (3 꺼내기)
print(numbers)                              # [5, 4, 4, 100]
numbers2 = [1, 2, 3, 4]                     # numbers2 만들기
numbers2.clear()                            # numbers2의 모든 요소 삭제 -> 빈 리스트
print(numbers2)                             # []
print("-" * 50)                             


# 정렬
print("정렬")
numbers.sort()                              # 오름차순으로 정렬
print(numbers)                              # [4, 4, 5, 100]
numbers.sort(reverse=True)                  # 내림차순으로 정렬
print(numbers)                              # [100, 5, 4, 4]
print("-" * 50)


# 역순
print("역순")
numbers.reverse()                           # 요소 순서를 거꾸로 뒤집기
print(numbers)                              # [4, 4, 5, 100]
print("-" * 50)


# 길이 확인 (요소 개수)
print("길이 확인")
print("리스트의 길이 :", len(numbers))         # 리스트의 길이 : 4
print("-" * 50)


# 포함 여부
print("포함 여부") 
print(5 in numbers)                        # numbers에 5가 있는가?    True
print(1000 in numbers)                     # numbers에 1000이 있는가? False
print(500 not in numbers)                  # numbers에 500이 없는가?  True
print(4 not in numbers)                    # numbers에 4가 없는가?    False
print("-" * 50)

#위치 확인
print("위치 확인")
print("첫 번째 4의 인덱스:", numbers.index(4)) # 첫 번째 4의 인덱스 : 0

 


 

이렇게 리스트(List)에 대해 알아보았습니다.

파이썬에는 리스트와 비슷한 자료형들이 많이 있습니다.

다음 시간에도, 그러한 자료형들에 대해 계속해서 배워보도록 하겠습니다.

이번 시간도 수고하셨습니다~