메서드는 클래스(class) 내부에 정의되는 함수
클래스는 파이썬에서 '타입을 표현하는 방법' 이며 이미 은연중에 사용해 왔음
예를 들어 help 함수를 통해 str을 호출해보면 class 였다는 것을 확인 가능
어딘가(클래스)에 속해 있는 함수이며 각 데이터 타입별로 다양한 기능을 가진 메서드가 존재
# 데이터 타입 객체. 메서드()
'hello'.capitalize()

[출처]https://wikidocs.net/95985
print('banana'.find('a')) # 1
print('banana'.find('z')) # -1string1 = 'Hello'
string2 = '123
print(string1.isalpha()) # True
print(string2.isalpha()) # Falsetext = 'Hello, world'
new_text = text.replace('world', 'Python')
print(new_text) # Hello, Python!text = ' Hello, world! '
new_text = text.strip()
print(new_text) # Hello, world!text = 'Hello, world!'
words = text.split(',')
print(words) # ['Hello', ' world!']words = ['Hello', 'world']
text = '-'.join(words)
print(text) # 'Hello-world'| 메서드 | 설명 |
|---|---|
| L.appned(x) | 리스트 마지막에 항목 x를 추가 |
| L.extend(m) | Iterable m의 모든 항목들을 리스트 끝에 추가 (+=과 같은 기능) |
| L.insert(i, x) | 리스트 인덱스 i에 항목 x를 삽입 |
| L.remove(x) | 리스트 가장 왼쪽에 있는 항목(첫 번째) x를 제거 항목이 존재하지 않을 경우 : ValueError |
| L.pop() | 리스트 가장 오른쪽에 있는 항목(마지막)을 반환 후 제거 |
| L.pop(i) | 리스트 인덱스 i에 있는 항목을 반환 후 제거 |
| L.clear() | 리스트의 모든 항목 삭제 |
my_list = [1, 2, 3]
my_list.extend([4, 5, 6])
print(my_list) # [1, 2, 3, 4, 5, 6]my_list = [1, 2, 3]
my_list.insert(1, 5)
print(my_list) # [1, 5, 2, 3]my_list = [1, 2, 3]
my_list.remove(2)
print(my_list)my_list = [1, 2, 3, 4, 5]
item1 = my_list.pop() # 가장 마지막 삭제
itme2 = my_list.pop(0) # 1 삭제my_list = [1, 2, 3]
my_list.clear()
print(my_list)| 문법 | 설명 |
|---|---|
| L.index(x, start, end) | 리스트에 있는 항목 중 가장 왼쪽에 있는 항목 x의 인덱스를 반환 |
| L.reverse() | 리스트의 순서를 역순으로 변경 (정렬 X) |
| L.sort() | 리스트를 정렬 (매개변수 이용가능) |
| L.count(x) | 리스트에서 항목 x의 개수를 반환 |
파이썬에서는 데이터에 분류에 따라 복사가 달라짐
"변경 가능한 데이터 타입"과 "변경 불가능한 데이터 타입"을 다르게 다룸
변경 가능
a = [1, 2, 3, 4]
b = a
b[0] = 100
print(a) # [100, 2, 3, 4]
print(b) # [100, 2, 3, 4]
변경 불가
a = 20
b = a
b = 10
print(a) # 20
print(b) # 10
주소를 할당한 것
original_list = [1, 2, 3]
copy_list = original_list
print(original_list, copy_list) # [1, 2, 3] [1, 2, 3]
copy_list[0] = 'hi'
print(original_list, copy_list) # ['hi', 2, 3] ['hi', 2, 3]
슬라이싱을 통한 복사
a = [1, 2, 3]
b = a[:]
print(a, b) # [1, 2, 3] [1, 2, 3]
b[0] = 100
print(a, b) # [1, 2, 3] [100, 2, 3]
한계
2차원 리스트와 같이 변경 가능한 객체 안에 변경 가능한 객체가 있는 경우
a와 b의 주소는 다르지만 내부 객체의 주소는 같기 떄문에 함께 변화
a = [1, 2, [1, 2]]
b = a[:]
print(a, b) # [1, 2, [1, 2]] [1, 2, [1, 2]]
b[2][0] = 100
print(a, b) [1, 2, [100, 2]] [1, 2, [100, 2]]
.copy() 이용
내부에 중첩된 모든 객체까지 새로운 객체 주소를 참조하도록 함
import copy
original_list = [1, 2, [1, 2]]
deep_copied_list = copy.deepcopy(original_list)
deep_copied_list[2][0] = 100
print(original_list) # [1, 2, [1, 2]]
print(deep_copied_list) # [1, 2, [100, 2]]
| 메서드 | 설명 |
|---|---|
| isdecimal() | 문자열이 모두 숫자 문자(0~9)로만 이루어져 있어야 True |
| isdigit() | isdecimal()과 비슷하지만, 유니코드 숫자도 인식 |
| isnumeric() | isdigit()과 유사하지만, 몇 가지 추가적인 유니코드 문자들을 인식( 분수, 지수, 루트 기호도 숫자로 인식) |