[자료구조] 리스트(List)

Jimin_Note·2025년 8월 26일
0
post-thumbnail

📌 리스트란?

  • 리스트(List)여러 개의 데이터를 순차적으로 나열한 자료구조이다.
  • 파이썬에서 리스트는 [] 대괄호를 사용해서 생성한다.
  • 숫자, 문자열, 불리언 등 다양한 타입이 섞여서 들어갈 수도 있고, 리스트 안에 또 다른 리스트도 가능하다.
fruits = ['apple', 'banana', 'cherry']
numbers = [1, 2, 3, 4, 5]
mixed = [1, "hello", True, [9, 8, 7]]

리스트 아이템 조회 (Indexing)

리스트는 0부터 시작하는 인덱스를 사용해 아이템에 접근

fruits = ['apple', 'banana', 'cherry']
print(fruits[0])  # apple
print(fruits[1])  # banana

리스트와 반복문

# 1. for문으로 아이템 순회
for fruit in fruits:
    print(fruit)

# 2. for문 + range() 사용
for i in range(len(fruits)):
    print(f"index {i}: {fruits[i]}")
    
# 3. enumerate()로 인덱스 + 값 같이 가져오기 (실무에서 매우 자주 씀!)   
for idx, fruit in enumerate(fruits):
    print(f"{idx}번 과일은 {fruit}")
    
# 4.  while문으로 리스트 순회
i = 0
while i < len(fruits):
    print(fruits[i])
    i += 1

아이템 추가

# 1. 리스트 끝에 하나의 요소를 추가
fruits.append('orange')
print(fruits)  # ['apple', 'banana', 'cherry', 'orange']

# 2. insert(index, item) 형태로 특정 위치에 원하는 요소 삽입
fruits.insert(1, 'grape')
print(fruits)  # ['apple', 'grape', 'banana', 'cherry', 'orange']

아이템 삭제

# 1. 마지막 요소를 제거하고 반환
fruits.pop()
print(fruits)  

# 2.  특정 아이템 삭제
fruits.remove('banana')
print(fruits)  # 'banana' 삭제됨

# 3. 리스트 비우기
fruits.clear()
print(fruits)  # []

리스트 안에 특정 값이 있는지 확인 (in 연산자)

if 'apple' in fruits:
    print("사과가 있어요!")

리스트 정렬

nums = [3, 1, 4, 2]
nums.sort()
print(nums)  # [1, 2, 3, 4]

nums.sort(reverse=True)
print(nums)  # [4, 3, 2, 1]

names = ['홍길동', '박찬호', '이용규']
names.reverse()
print(names) # ['이용규', '박찬호', '홍길동']

리스트 연결

students = ['홍길동', '박찬호']
new_students = ['이용규', '박승철']
students.extend(new_students)
print(students)
# ['홍길동', '박찬호', '이용규', '박승철']

# + 연산자로도 연결 가능
all_students = students + ['김지은', '강호동']
print(all_students)

리스트 슬라이싱 [start:end:step]

students = ['홍길동', '박찬호', '이용규', '박승철', '김지은', '강호동']
print(students[2:4])  # ['이용규', '박승철']

# 단계(step) 설정도 가능
print(students[::2])  # ['홍길동', '이용규', '김지은']

# 슬라이싱으로 값 변경도 가능
students[1:3] = ['손흥민', '이강인']
print(students)

리스트 곱셈 연산, 인덱스 찾기

names = ['홍길동', '박찬호']
print(names * 2)
# ['홍길동', '박찬호', '홍길동', '박찬호']

players = ['김민재', '손흥민', '이강인', '손흥민']
print(players.index('손흥민'))  # 1 (처음 등장한 위치)

리스트에서 아이템 개수 세기, 삭제

players = ['손흥민', '이강인', '김민재', '손흥민']
print(players.count('손흥민'))  # 2

del players[1]
print(players)  # '이강인' 삭제됨
profile
Hello. I'm jimin:)

0개의 댓글