a, b = map(int, input().strip().split(' '))

예전에 파이썬 독학한다고 처음 백준 문제 풀어볼 때 입력값을 여러개 받아야 할 필요가 있었다.

그래서 저 말 그대로 구글링에 쳤을 때 위와 같이 코드가 나왔다.

당시에는 이해를 못하고 그냥 썼는데 지금은 한 번 이 코드를 뜯어보겠다.

 

1. map

map은 컬렉션 관리에 사용되는 람다 함수이다. 

파이썬에서 "lambda"는 런타임에 생성해서 사용할 수 있는 익명 함수를 의미한다. 

람다함수는 결과 부분을 return 키워드 없이 자동으로 return 해주고, 익명함수라는 이름처럼 함수의 이름을 지정하지 않는다. 

 

map 함수의 모양은 다음과 같다.

map(변환 함수, 대상 리스트)

  • 모든 요소에 대해 변환 함수를 호출하여 새 요소값으로 구성된 리스트를 생성
  • 첫 번째 인수로 전달된 변환 함수의 동작에 따라 요소값을 어떻게  변경할 것인지가 달라짐
  • 새롭게 변환한 값들로 새로운 리스트를 생성하여 반환
def half(s): # 변환 조건 함수
  return s / 2

score = [45, 89, 72, 53, 94]
for s in map(half, score):
  print(s, end = ", ")
더보기
22.5, 44.5, 36.0, 26.5, 47.0,
def total(s, b): # 인수를 두 개 받을 수도 있음
  return s + b
score = [45, 89, 72, 53, 94]
bonus = [2, 3, 0, 0, 5]
for s in map(total, score, bonus): # 대상 리스트도 두개
  print(s, end = ', ')
더보기

47, 92, 72, 53, 99,

 

2. input

input은 파이썬의 입력 함수로 입력되는 모든 것을 문자열로 취급한다.

다음과 같이 프롬프트도 띄울 수 있다.

number = input("숫자를 입력하세요: ")

 

3. strip

문자열 메소드 중 하나로 문자열의 공백을 제거한다.

lstrip은 왼쪽 공백 제거, rstrip은 오른쪽 공백 제거, strip은 양쪽의 공백을 모두 제거한다.

s = "   yanggaeng   "
print(s + "님") # 그대로 출력
print(s.lstrip() + "님") # 왼쪽 공백 제거
print(s.rstrip() + "님") # 오른쪽 공백 제거
print(s.strip() + "님") # 양쪽의 공백을 모두 제거
더보기

yanggaeng   님

yanggaeng   님

   yanggaeng님

yanggaeng님

 

4. split 

문자열 메소드 중 하나로 문자열을 분할한다.

  • 여러 개로 분할된 문자열은 리스트에 저장된다.
  • 구분자 자체는 분할된 문자열에 포함되지 않는다.
dept = "컴퓨터학과 정보통계학과 문헌정보학과 경영학과"
print(dept.split()) # 구분자를 기준으로 문자열을 분할. default는 공백문자

route = "서울역->대전역->동대구역->부산역"
station = route.split("->") # 구분자는 문자열도 가능
print(station)
for s in station:
  print(s, "다음은", end = " ")
더보기

['컴퓨터학과', '정보통계학과', '문헌정보학과', '경영학과']

['서울역', '대전역', '동대구역', '부산역']

서울역 다음은 대전역 다음은 동대구역 다음은 부산역 다음은

 

'프로그래밍 > Python' 카테고리의 다른 글

[Python] sort, join  (0) 2022.03.26
[Python] module  (0) 2022.03.23
[Python] 문자열  (0) 2022.03.21
[Python] 2차원 리스트, zip  (0) 2022.03.20
[Python] 리스트  (0) 2022.03.19
복사했습니다!