Python

4.2 문자열과 리스트

수현조 2024. 11. 29. 09:59

1. 문자열(String)

문자열은 문자나 문장을 표현하는 자료형이에요. 작은 따옴표(')나 큰 따옴표(")로 감싸서 만듭니다.

1-1. 문자열 기본 사용법

greeting = "Hello, Python!"
print(greeting)  # 출력: Hello, Python!

1-2. 인덱싱 (Indexing)

문자열은 글자마다 번호(인덱스)가 있어요.

  • 인덱스는 0부터 시작합니다.
  • 뒤에서부터는 음수 인덱스를 사용해요.

예시

text = "Python"
print(text[0])   # 출력: 'P' (첫 번째 글자)
print(text[-1])  # 출력: 'n' (마지막 글자)

1-3. 슬라이싱 (Slicing)

문자열의 일부분을 가져오는 방법이에요.
문법: 문자열[시작:끝]

  • 끝은 포함되지 않습니다.

예시

text = "Hello, Python!"
print(text[0:5])  # 출력: 'Hello'
print(text[7:])   # 출력: 'Python!'
print(text[:5])   # 출력: 'Hello'

1-4. 문자열은 불변 (Immutable)

문자열은 직접 수정할 수 없어요.
새로운 문자열을 만들어야 합니다.

예시

text = "Python"
# text[0] = "J"  # 오류 발생! 문자열은 수정 불가

text = "J" + text[1:]  # 새로운 문자열 생성
print(text)  # 출력: 'Jython'

1-5. 문자열 찾기 (find())

문자열에서 특정 문자가 어디에 있는지 위치를 알려줍니다.
찾는 문자가 없으면 -1을 반환합니다.

예시

text = "I love Python!"
print(text.find("love"))  # 출력: 2
print(text.find("Java"))  # 출력: -1 (찾을 수 없음)

1-6. 문자열 나누기 (split())

문자열을 특정 기준으로 잘라서 리스트로 변환합니다.

예시

sentence = "apple, banana, cherry"
fruits = sentence.split(", ")  # 쉼표+공백으로 나눔
print(fruits)  # 출력: ['apple', 'banana', 'cherry']

1-7. 문자열을 리스트로 변환

방법 1: 문자 단위로 나누기

text = "Python"
chars = list(text)
print(chars)  # 출력: ['P', 'y', 't', 'h', 'o', 'n']

방법 2: 특정 기준으로 나누기

sentence = "I love Python"
words = sentence.split()  # 공백 기준으로 나눔
print(words)  # 출력: ['I', 'love', 'Python']

2. 리스트(List)

리스트는 여러 데이터를 묶어서 저장할 수 있는 자료형이에요.
대괄호 [ ]로 묶으며, 각 데이터를 **요소(Element)**라고 합니다.


2-1. 리스트 기본 사용법

numbers = [1, 2, 3]
fruits = ["apple", "banana", "cherry"]
print(numbers)  # 출력: [1, 2, 3]

2-2. 인덱싱과 슬라이싱

인덱싱

fruits = ["apple", "banana", "cherry"]
print(fruits[0])  # 출력: 'apple' (첫 번째 요소)
print(fruits[-1]) # 출력: 'cherry' (마지막 요소)

슬라이싱

print(fruits[0:2])  # 출력: ['apple', 'banana']
print(fruits[1:])   # 출력: ['banana', 'cherry']

2-3. 리스트 수정

리스트는 수정 가능합니다. 인덱스를 사용해 값을 바꿀 수 있어요.

예시

fruits = ["apple", "banana", "cherry"]
fruits[1] = "blueberry"  # 두 번째 요소 변경
print(fruits)  # 출력: ['apple', 'blueberry', 'cherry']

2-4. 리스트 추가

append(): 리스트의 끝에 요소 추가

fruits = ["apple", "banana"]
fruits.append("cherry")
print(fruits)  # 출력: ['apple', 'banana', 'cherry']

insert(): 특정 위치에 요소 삽입

fruits = ["apple", "cherry"]
fruits.insert(1, "banana")  # 1번 인덱스에 'banana' 삽입
print(fruits)  # 출력: ['apple', 'banana', 'cherry']

2-5. 리스트 삭제

del: 특정 위치의 요소 삭제

numbers = [1, 2, 3, 4]
del numbers[1]  # 두 번째 요소 삭제
print(numbers)  # 출력: [1, 3, 4]

pop(): 요소를 제거하고 반환

numbers = [1, 2, 3]
last_item = numbers.pop()  # 마지막 요소 제거
print(numbers)   # 출력: [1, 2]
print(last_item) # 출력: 3

2-6. 리스트 정렬

오름차순 정렬

numbers = [5, 2, 9, 1]
numbers.sort()
print(numbers)  # 출력: [1, 2, 5, 9]

내림차순 정렬

numbers.sort(reverse=True)
print(numbers)  # 출력: [9, 5, 2, 1]

2-7. 중첩 리스트

리스트 안에 리스트를 포함할 수 있어요.
이를 통해 2차원 배열처럼 사용할 수 있습니다.

예시

matrix = [[1, 2], [3, 4], [5, 6]]
print(matrix[1])     # 출력: [3, 4]
print(matrix[1][0])  # 출력: 3 (두 번째 리스트의 첫 번째 요소)

정리

문법/메서드 설명 예시

list() 문자열을 글자 단위로 리스트 변환 list("Python") → ['P', 'y', ...]
split() 문자열을 기준으로 나눠 리스트 변환 "a,b".split(",") → ['a', 'b']
append() 리스트 끝에 요소 추가 [1].append(2) → [1, 2]
insert() 특정 위치에 요소 삽입 [1, 3].insert(1, 2) → [1, 2, 3]
del 특정 위치의 요소 삭제 del [1, 2][1] → [1]
pop() 요소를 제거하고 반환 [1, 2].pop() → [1] (반환: 2)
sort() 리스트 정렬 [2, 1].sort() → [1, 2]

이제 문자열과 리스트의 모든 내용이 잘 정리되었어요! 😊

'Python' 카테고리의 다른 글

4.2.2 슬라이싱  (0) 2024.11.29
4.2.1. 연습 문제: 아이돌 팬 (1)  (1) 2024.11.29
4.1 자료형  (0) 2024.11.29
3.5 람다(lambda)  (0) 2024.11.29
3.3 지역변수, 전역변수  (0) 2024.11.29