본문 바로가기
개인 공부/파이썬

[Python] 파이썬 문자열(str), 리스트(list) 정리

by 몽섭 2025. 3. 20.
728x90
반응형
SMALL

파이썬 문자열, 리스트 정리

1. 문자열(str)

문자열 개요

  • Python에서 문자열은 sequence 자료형으로 여러 문자의 집합이다.
  • 문자열 내 각 문자에 인덱스를 사용하여 접근 가능하며, slicing을 통해 부분 문자열을 추출할 수 있다.
  • 문자열은 **반복자(iterator)**가 내장되어 있어, for 문을 통해 쉽게 순회할 수 있다.

문자열 관련 주요 함수 및 메서드

1) enumerate() 함수

  • 문자열을 순회하며 indexvalue를 튜플로 반환한다.

사용예시 : 

text = "hello"
for index, char in enumerate(text):
    print(index, char)

2) 문자열 메서드

  • Python의 문자열 메서드는 원본 문자열을 직접 변경하지 않고, 변환된 새 문자열을 반환한다.

3) is로 시작하는 메서드

  • True 또는 False 값을 반환하는 메서드.
print("abc".isalpha())  # True
print("123".isdigit())  # True

문자열 포맷팅 (문자열 형식 지정)

1) % 연산자를 이용한 포맷팅 (기존 방식)

name = "Alice"
print("Hello, %s" % name)
  • %s: 문자열 출력
  • %d: 정수 출력
  • %f: 실수 출력 (소수점 이하 자릿수 지정 가능)

2) format() 메서드를 이용한 포맷팅 (Python 3 방식)

name = "Alice"
print("Hello, {}".format(name))
print("{:<10} {:>5} {:.2f}".format("Alice", 25, 123.456))

3) f-string (Python 3.8 이상 권장 방식)

name = "Alice"
age = 25
print(f"Hello, {name}. You are {age} years old.")

특수 문자 (Escape Characters)

  • \n: 줄 바꿈
  • \t: 탭
  • \\: 역슬래시 출력

2. 리스트(list)

리스트 개요

  • 여러 값을 저장할 수 있는 sequence 자료형.
  • 가변(mutable) 자료형으로 요소 변경 가능.
  • Python에서 가장 많이 사용되는 자료형 중 하나.

리스트 생성 방법

# 빈 리스트 생성
list1 = []
list2 = list()

리스트 주요 연산

  • Indexing: 특정 요소 접근 (list[0])
  • Slicing: 리스트의 부분 추출 (list[1:3])
  • 길이 계산: len(list)
  • 요소 포함 여부 확인: x in list
  • 연결: list1 + list2

중첩 리스트 (Nested List)

l = [[1, 2], [3, 4]]
print(l[0])  # [1, 2]
print(l[0][1])  # 2

리스트 관련 주요 메서드

1) 요소 추가

  • append(value): 리스트 마지막에 요소 추가
  • insert(index, value): 특정 위치에 요소 삽입

2) 요소 변경

l = [10, 20, 30]
l[1] = 99  # 리스트 요소 변경
print(l)  # [10, 99, 30]

3) 요소 삭제

  • del list[index]
  • remove(value): 특정 값을 찾아 삭제 (첫 번째로 발견된 값만 삭제)
  • pop(): 마지막 요소를 제거하고 반환
  • clear(): 리스트 전체 삭제

4) 리스트 검색 및 정렬

  • index(value): 특정 값의 인덱스 반환
  • count(value): 특정 값의 개수 반환
  • sort(): 리스트 정렬 (기본 오름차순)
  • sorted(list): 정렬된 리스트 반환 (원본 유지)

리스트 복사

1) 전체 복사

l1 = [1, 2, 3]
l2 = l1[:]  # 슬라이싱을 이용한 복사
l3 = l1.copy()  # copy() 메서드를 이용한 복사
l4 = list(l1)  # list() 함수를 이용한 복사

2) 얕은 복사 (Shallow Copy)

  • 중첩 리스트의 경우, 내부 리스트의 참조값만 복사됨.
import copy
l1 = [[1, 2], [3, 4]]
l2 = copy.copy(l1)
l2[0][0] = 99
print(l1)  # [[99, 2], [3, 4]]

3) 깊은 복사 (Deep Copy)

  • 내부 리스트까지 완전히 새로운 객체로 복사.
import copy
l1 = [[1, 2], [3, 4]]
l2 = copy.deepcopy(l1)
l2[0][0] = 99
print(l1)  # [[1, 2], [3, 4]]

리스트 순회 방법

# 기본 for문 사용
l = [1, 2, 3]
for item in l:
    print(item)

# enumerate() 사용
for idx, val in enumerate(l):
    print(idx, val)

# zip() 사용
l1 = [1, 2, 3]
l2 = ["a", "b", "c"]
for num, char in zip(l1, l2):
    print(num, char)

리스트 내포 (List Comprehension)

  • 리스트를 생성하는 간결한 방법.
# 기본 형식
squares = [x ** 2 for x in range(5)]

# 조건을 포함한 형식
evens = [x for x in range(10) if x % 2 == 0]

파이썬 내장 함수 (Built-in Functions)

  • sum(list): 리스트 값들의 합
  • max(list), min(list): 최댓값/최솟값 반환
  • abs(value): 절대값 반환
  • round(value, n): 반올림 (소수점 n자리까지)
  • divmod(a, b): a를 b로 나눈 몫과 나머지를 튜플로 반환

 

728x90
반응형
LIST