나 볼라고 정리한 코딩테스트 메소드 모음
리스트에서 특정 인덱스의 요소를 삭제하고 그 요소를 반환
인덱스가 주어지지 않으면 마지막 요소를 삭제하고 반환
list = [1, 2, 3, 4, 5]
a = list.pop() # 마지막 인덱스의 원소를 삭제하고 이를 반환
print(a) # 5
print(list) # [1, 2, 3, 4]
b = list.pop(0) # 0 인덱스의 원소를 삭제하고 이를 반환
print(b) # 1
print(list) # [2, 3, 4]
리스트에서 첫 번째로 발견한 특정 값을 삭제
list = [1, 2, 3, 4, 5]
list.remove(3) # 반환값 없음
print(list) # 출력: [1, 2, 4, 5]
list.remove(6) # ValueError: list.remove(x): x not in list
리스트의 요소를 정렬
reverse=True를 인자로 주면 내림차순 정렬이 가능
lst = [3, 1, 4, 1, 5, 9]
lst.sort()
print(lst) # 출력: [1, 1, 3, 4, 5, 9]
lst.sort(reverse=True)
print(lst) # 출력: [9, 5, 4, 3, 1, 1]
리스트의 해당 위치에 해당 요소를 입력
my_list = [1, 2, 3]
my_list.insert(1, 'a')
print(my_list) # 출력: [1, 'a', 2, 3]
리스트 생성하는 방법 (List Comprehension)
[expression for item in iterable]
리스트 안에 for문을 넣는 방법
아래와 같이 응용 가능
numbers = [1, 2, 3, 4, 5]
squares = [number**2 for number in numbers]
print(squares) # 출력: [1, 4, 9, 16, 25]
even_squares = [number**2 for number in numbers if number % 2 == 0]
print(even_squares) # 출력: [4, 16]
입력받을 때도 요긴하게 쓰임
# 입력: 3 4 5
list = [int(_) for _ in input().split()] # list = [3, 4, 5]
num_list = list(map(int, input().split())) # 입력: 1 2 3 4 5
print(num_list) # 출력: [1, 2, 3, 4, 5]
room = list(input()) # 입력: .o...*.
print(room) # 출력: ['.', 'o', '.', '.', '.', '*', '.']
num_list = [1, 2, 3, 4, 5]
print(*num_list) # 출력: 1 2 3 4 5
+
연산자로 간단하게 가능
num1 = 5
num2 = 3
print(str(num1) + str(num2)) # 출력: 53 (type:str)
인덱싱으로 간단하게 가능
num = 12345
str = str(num)[1:-1]
print(str) # 출력: 234 (type:str)
ord()
함수를 사용하여 문자를 해당 문자의 유니코드로 변환
char = 'A'
unicode_val = ord(char)
print(unicode_val) # 출력: 65 (type:int)
chr()
함수를 사용하여 정수 유니코드 값을 해당 유니코드의 문자로 변환
unicode_val = 66
char = chr(unicode_val)
print(char) # 출력: B (type:str)
유니코드 값은 정수형이므로 일반적인 산술 연산이 가능
char = 'A'
new_unicode_val = ord(char) + 1
new_char = chr(new_unicode_val)
print(new_char) # 출력: B (type:str)
파이썬에서는
for
루프와else
를 함께 사용할 수 있다..!
for
루프와 else
를 함께 사용하면 for
루프가 완전히 완료되었을 때 (즉, 중간에 break
로 중단되지 않았을 때) else
블록이 실행된다
for i in range(5):
print(i)
if i == 3:
break
else:
print("Loop finished normally.")
i
가 3일 때 break
로 루프를 중단하므로, "Loop finished normally."는 출력되지 않는다 break
가 없거나 조건에 의해 실행되지 않는다면, else
블록이 실행된다효율적인 반복을 위해 파이썬에서 제공하는 라이브러리
순열 만들어주는 메소드
import itertools
for i in itertools.permutations('ABC', 2):
print(i) # ('A', 'B'), ('A', 'C'), ('B', 'A'), ('B', 'C'), ('C', 'A'), ('C', 'B') 순서로 출력됨
조합 만들어주는 메소드
import itertools
for i in itertools.combinations('ABC', 2):
print(i) # ('A', 'B'), ('A', 'C'), ('B', 'C') 순서로 출력됨
A, B = B, A
많은 양의 입력을 받아야할 때, 조금이라도 더 빠르게 받을 수 있는 방법
import sys
input = sys.stdin.readline
n = int(input())
별게 다 있다