Python

[코딩테스트/Python] 내가 필요해서 정리하는 파이썬 내장함수, 연산기호, 리스트 선언

쟈비쓰 2022. 11. 20. 16:38
728x90

1. 연산기호, 내장함수

1.1 자주 쓰이는 연산 기호

  • a // b : a를 b로 나눈 몫
  • a % b : a를 b로 나눈 나머지
  • a ** b = a^b
  • a += 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