Python 기본 Method 및 함수 정리
1. 리스트 요소 추가
# .insert() : 특정 위치에 특정 element 추가
a = [1, 2, 3]
a.insert(1, 10)
# index = 1에 10 추가
print(a)
# [1, 10, 2, 3]
# .append() : 리스트 마지막에 한 개의 element 추가
a = [1, 2, 3]
a.append(10)
# 마지막 index에 10 추가
print(a)
# [1, 2, 3, 10]
# .extend() : 리스트 마지막에 sequential elements 추가
a = [1, 2, 3]
add_list = ['a', 'b', 'c']
a.extend(add_list)
# 마지막 index에 add_list elements 추가
print(a)
# [1, 2, 3, 'a', 'b', 'c']
2. 리스트 요소 삭제
# .clear() : 리스트의 모든 내용 삭제
a = [1, 2, 3]
a.clear()
print(a)
# []
# .remove() : 리스트의 특정 element 삭제 / 동일한 값이 있을 때는 index가 가장 낮은 값 제거
a = [1, 2, 3]
a.remove(2)
print(a)
# [1, 3]
# filter(function, iterable) : 주어진 function으로 iterable을 필터링
numbers = [-2, -1, 0, 1, 2, 3, 4, 5]
positive_numbers = list(filter(lambda x: x > 0, numbers))
# numbers에서 lambda 함수를 만족하는 값을 filtering 해서 list로 반환
print(positive_numbers)
# 출력: [1, 2, 3, 4, 5]
# del() : 리스트의 특정 위치의 element 삭제
a = [1, 2, 3, 4, 5]
del(a[1])
print(a)
# [1, 3, 4, 5]
del(a[1:3])
print(a)
# [1]
# .pop() : 리스트의 위치의 element를 출력한 다음 삭제 (default = -1)
a = [1, 2, 3, 4, 5]
a.pop()
# 5
print(a)
# [1, 2, 3, 4]
3. 분리 및 연결, 검색
# .split(sep, maxsplit) : 특정 element를 중심으로 리스트로 분리
- sep : 분리의 구분자, default는 공백
- maxsplit : 최대 분할 횟수, default = -1로, 가능한 모든 분할 수행
a = 'ainow@tistory'
a.split('@')
print(a)
# ['ainow', 'tistory']
# .splitness(keepends) : 문자열을 개행 문자를 기준으로 분리
- keepends : True일 경우 개행문자를 결과에 포함
text = "line 1\nline 2\r\nline 3"
result = text.splitlines()
print(result)
# ['line 1', 'line 2', 'line 3']
result_with_ends = text.splitlines(keepends=True)
print(result_with_ends)
# ['line 1\n', 'line 2\r\n', 'line 3']
# .strip([chars]) / .lstrip() / .rstrip() : 양 끝의 개행 문자 혹은 특정 문자열을 제거하여 반환
text = "---Hello, World!---"
stripped_text = text.strip('-')
print(stripped_text)
# "Hello, World!"
# .join() : 주어진 문자열을 연결
# CASE 1
delimiter = '-'
my_list = ['apple', 'banana', 'orange']
result = delimiter.join(my_list)
print(result)
# 'apple-banana-orange'
# CASE2
my_list = ['p','y','t','h','o', 'n']
print(''.joint(my_list))
# 'python'
# .index(sub, start, end) : 리스트의 특정 element의 index 반환
- 'sub' element가 start index에서 end index 내에서 어디에 있는지 반환
- start만 있으면 start 지점부터 끝까지,
- end만 있으면 처음부터 end 지점까지.
a = [1, 2, 3, 4, 5]
print(a.index(3))
# 2
4. 정렬
# .sort(key, reverse) : 리스트를 정렬 / 원래의 리스트를 정렬된 리스트로 변환
- 새로운 리스트를 생성하지 않음
- key= : 정렬에 사용할 키 함수
- reverse= : 내림차순 정렬 여부
my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
my_list.sort()
print(my_list)
# [1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
# sorted(key, reverse) : 리스트를 정렬 / 원래의 리스트를 정렬된 리스트로 변환하지 않음
- 새로운 리스트 생성
- key= : 정렬에 사용할 키 함수
- reverse= : 내림차순 정렬 여부
my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
sorted_list = sorted(my_list)
print(sorted_list)
# [1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
print(my_list)
# [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
# list(set(my_list)) : 리스트에 중복된 값을 제거하고 정
my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
result = list(set(my_list))
print(result)
# 순서가 없는 중복 제거된 set: [1, 2, 3, 4, 5, 6, 9]
# list() 함수를 사용하여 변환하면서 정렬: [1, 2, 3, 4, 5, 6, 9]
5. 대소문자
# .capitalize() : 문자의 첫글자만 대문자로 변환
text = "hello world"
result = text.capitalize()
print(result)
# "Hello world"
# .upper() : 모든 문자를 대문자로 변환
text = "hello world"
result = text.upper()
print(result)
# "HELLO WORLD"
# .lower() : 모든 문자를 소문자로 변환
text = "Hello World"
result = text.lower()
print(result)
# "hello world"
# .casefold() : 문자열을 소문자로 변환하는 method로, 문자열 비교시 사용에 유용
text = "Hello World"
result = text.casefold()
print(result)
# "hello world"
6. 기타
# eval() : 문자열로 표현된 표현식을 실행하여 결과를 반환하는 함수
# 수학적인 표현식을 문자열로 표현하고 eval()로 실행
result = eval("3 + 5 * 2")
print(result)
# 13
# 변수와 함수를 포함한 파이썬 코드를 문자열로 표현하고 eval()로 실행
x = 10
y = 20
code = "x + y"
result = eval(code)
print(result)
# 30
# .center(width, fillchar) : 문자열을 형식에 맞게 중앙 정렬
text = "Hello"
centered_text = text.center(10, '-')
print(centered_text)
# "--Hello---"
# .ljust(width, fillchar) : 문자열을 형식에 맞게 왼쪽 정렬
text = "Hello"
left_aligned_text = text.ljust(10, '*')
print(left_aligned_text)
# "Hello*****"
# .rjust(width, fillchar) : 문자열을 형식에 맞게 오른쪽 정렬
text = "Hello"
right_aligned_text = text.rjust(10, '#')
print(right_aligned_text)
# "#####Hello"
# .count(sub, start, end) : start index와 end index 사이에 있는 문자열 sub와 동일한 부분 문자의 갯수 반환
text = "abababab"
count_1 = text.count("ab")
print(count_1)
# 4 (전체 문자열에서 "ab"가 4번 등장)
count_2 = text.count("ab", 2)
print(count_2)
# 3 (인덱스 2 이후부터의 문자열에서 "ab"가 3번 등장)
count_3 = text.count("ab", 2, 6)
print(count_3)
# 2 (인덱스 2부터 5까지의 부분 문자열에서 "ab"가 2번 등장)