본문 바로가기
공부/Python

[python]한 번에 여러 개 입력 받기(split함수, map함수)

by happyeuni 2021. 7. 27.

python에서 입력받을 때에는 input 함수 사용. 

디폴트 값으로 문자열로 저장하고 int(input()) 이나 float(input())형태로 정수, 실수로 저장할 수 있다.

 

변수 여러 개의 값을 입력받으려면 split을 사용한다.

마찬가지로 디폴트로 문자열로 저장하고, map에 int나 float을 지정해주어 정수나 실수로 변환한다.

#1. 값 두 개를 입력받아 변수 a와 b에 저장 (띄어쓰기 구분)
a, b = input().split() #문자열로
a, b = map(int, input().split()) #정수형으로
a, b = map(float, input().split()) #실수형으로 

#2. 1차원 배열 입력받기 = 정수형 리스트로 저장
num_list = list(map(int, input().split())) #입력 : 1 2 3 /출력 : [1, 2, 3] 

#3. 문자열 여러줄 입력받기 
s_list = [input() for _ in range(n)] #예시로 n에 3넣어 3줄 입력받기(엔터로 구분)

#4. 한 문자열(숫자ex.12345) 받아서 한 글자씩 나누어 더하기
s = input()
for i in range(len(s)):
	sum += int(s[i])  #문자열은 슬라이싱 가능!! + 문자열 형변환

#5. 띄어쓰기 없이 정수 여러개 입력받아 2차원 배열로 저장하기 
two_d = [list(map(int, input())) for _ in range(n)] #예시는 4줄 입력받음

#6. 열은 띄어쓰기로 행은 엔터로 구분하여 입력받아 2차원 배열 저장하기
t_d = [list(map(int, input().split())) for _ in range(n)]#예시는 4줄. 4.-와 결과는 같다.

 

3.-의 입력(초록)과 출력(검정) 예시
4.-의 입력과 출력 예시
5.-의 입력과 출력 예시. 입력 방식은 다르나 결과는 같음

 

 

 

split 함수란?

 : 문자열을 일정한 규칙으로 잘라서 리스트로 만들어 주는 함수.

#형태

  - 문자열.split()

  - 문자열.split('구분자')

  - 문자열.split('구분자',분할횟수)

  - 문자열.split(sep='구분자',maxsplit=분할횟수)   

  (= 문자열을 maxsplit 횟수만큼 sep의 구분자를 기준으로 문자열을 잘라서 리스트로 만든다)

#sep 파라미터

  - 기본값은 none.

  - 띄어쓰기, 엔터로 문자열을 자름 

  - 문자열.split(',') 은 , 기준으로 문자열을 자른다는 뜻

#maxsplit파라미터

  - 기본값은 -1. 자를 수 있을 때까지 문자열 전체를 자름

  - 앞에 sep파라미터가 있을 때만 maxsplit=를 생략할 수 있음.
     ex. 문자열.split(',',1)

     ex2.문자열.split(maxsplit=1) #앞에 sep파라미터 없어서 maxsplit을 써서 명시해줘야만 함. 

 

 

map 함수란?

: 리스트의 요소를 지정된 함수로 처리하는 함수. 

  보통 여러 개의 데이터를 한 번에 다른 형태로 바꾸기 위해 사용함.

#형태

  map(function,iterable)

 - 첫번째 매개변수는 적용시킬 함수, 두 번째 매개변수는 반복가능한 자료형(리스트, 튜플 등)

 - map 함수의 반환 값은 map 객체라서 list나 tuple로 형 변환을 시켜주어야 함.

 - 함수는 int와 타입, 람다함수, 일반 함수 모두 가능

result = list(map(lambda x: x * 2,[5,4,3,2,1]))
print(f"map(람다함수, 리스트) : {result}")

위 코드 결과

 

 

댓글