Python
[코딩테스트/Python] 내가 필요해서 정리하는 파이썬 내장함수, 연산기호, 리스트 선언
쟈비쓰
2022. 11. 20. 16:38
728x90
1. 연산기호, 내장함수
1.1 자주 쓰이는 연산 기호
a // b
: a를 b로 나눈 몫a % b
: a를 b로 나눈 나머지a ** b
= a^ba += 1
: a = a + 1
1.2 print()
print(a, b, c, sep=”,”)
: 각 element를 콤마(,)로 구분하도록 출력하기print(a, end=’\n‘)
: 각 element의 끝에 newline 문자 주면서 출력하기
1.3 input()
: 입력값 받기
num1 = input()
num2 = input("0~9까지의 숫자를 입력해주세요") # 입력값을 받아올 때 프린트를 하고싶을 경우
num3, num4 = input("숫자 2개를 입력해주세요").split() # 입력값이 여러 개일 경우
1.4 문자열 쪼개기
1.4.1 Syntax : str.split(separator, maxsplit)
- separator 디폴트 : whitespace
- maxsplit 디폴트 : -1 (모든 경우를 split하는 경우)
1.4.2 예시
a, b, c = input("Input Text : ").split()
⇒ a, b, c 3개의 변수에 대한 값을 각각 받아오기str.split(",")
: 콤마로 split하는 경우
1.4.3 그 외 방법 참고
하나의 문자열을 각 글자를 담은 리스트로 쪼개고 싶을 때
# 1. list() 메소드 사용
a = "12345"
b = list(a) # ['1', '2', '3', '4', '5']
# 2. list comprehension 사용
a = "12345"
b = [x for x in a] # ['1', '2', '3', '4', '5']
# 3. unpack(*) 메소드 사용
a = "12345"
b = [*a] # ['1', '2', '3', '4', '5']
1.5 map(fun(), iter)
- iterator를 fun()대로 바꾸고 싶을 때 사용
- 각각의 변수에 값을 담아주고 싶은 경우
split()
과 같이 쓰기도 함 - 리스트나 튜플의 문자열을 정수로, 정수를 문자열로 변환할 때 유용
1.6 문자열(string)와 내장함수
str.upper()
: 대문자로 변환str.lower()
: 소문자로 변환str.isupper()
: 문자열 str의 글자들이 대문자인지 여부에 따라 bool값 반환str.islower()
: 문자열 str의 글자들이 소문자인지 여부에 따라 bool값 반환str.isalpha()
: 문자가 맞는지 여부에 따라 bool값 반환str.find('a')
: ‘a’라는 문자가 처음으로 나오는 인덱스 반환str.count('a')
: str 안에 ‘a’가 존재하는 개수 카운트str[2:7]
: 인덱스 2~6까지의 글자를 slicing한 문자열 반환len(str)
: 문자열 str의 글자 수 반환ord(str)
: str에 해당하는 ASCII 코드 (정수) 반환chr(num)
: num에 해당하는 ASCII 문자를 반환
1.7 min()
, max()
, sum()
1.7.1 min(iterable, iterables*, key, default)
iterables*
: 1개 이상의 iterable을 인자로 줄 수 있음default
: 모든 iterable이 빈 경우 반환 값
1.7.2 min(arg1, arg2, args*, key)
args*
: 1개 이상의 argument를 인자로 줄 수 있음
1.7.3 sum(iterable, start)
start
: 계산을 시작하는 인덱스 (디폴트값 0)
1.8 sorting 정렬
1.8.1 str.sort()
mutable한 방식 ⇒ 원본 iterable이 정렬된 순서의 요소를 가진 iterable로 변경
a = [3, 5, 7, 1]
a.sort()
print(a) # [1, 3, 5, 7] : a 자체의 요소가 정렬되었다
1.8.2 sorted()
immutable ⇒ 원본 배열의 값을 다른 배열에 순서 정렬된 상태로 넣어주는 용도이다
a = [3, 5, 7, 1]
b = sorted(a)
print(a) # [3, 5, 7, 1] : a는 변화가 없다
print(b) # [1, 3, 5, 7] : b의 요소가 정렬되었다
1.9 람다 함수
lambda {argument} : {expression}
: 익명의 함수 표현식
{argument}
는 개수 제한 없음,{expression}
은 한 가지만 가능
✔️ 유용했던 상황 1 : sort하는 key를 일괄적으로 적용하고 싶을 때*
# 방법1. iter.sort()를 사용하는 경우
arr1 = [(1, 3), (6, 2), (1, 5)]
arr1.sort(key=lambda x : (x[0], x[1]))
# 방법2. sorted()를 사용하는 경우
arr2 = [(1, 3), (6, 2), (1, 5)]
arr3 = sorted(arr2, key=lambda x : (x[0], x[1])))
"""
arr1, arr3 :
[(1, 3), (1, 5), (6, 2)]
"""
✔️ 유용했던 상황 2 : iterator의 각 요소(element)에 동일한 함수를 적용시키고 싶을 때
arr = [1, 2, 3]
result = list(map(lambda x: x ** 2, arr)) # result = [1, 4, 9]
추가적인 함수를 define하지 않고도 위와 같이 한 줄로 표현 가능
2. 리스트 (list)
2.1 1차원 리스트
2.1.1 빈 리스트 만들기
test = []
test = list()
2.1.2 특정 값을 반복적으로 가진 리스트 만들기
test = [0] * 9 # test = [0, 0, 0, 0, 0, 0, 0, 0, 0]
2.2 (특정 값을 반복적으로 가진) 2차원 리스트 만들기
test = [[0] * 9 for _ in range(3)]
""" test = [[0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0]]
"""
728x90