한 줄에 여러 개 입력받기
Python 문제를 해결하다 보면, 한 줄에 여러 개의 입력을 받아야 하는 경우가 생긴다. 그러나 Python은 개행('\n')을 하나의 입력으로 인식하기 때문에 '5 4 1 3 2', '7 3'과 같이 인식한다. 이때, map 함수와 split 함수를 활용하면 각각의 정수로 분리하여 여러 개의 변수에 저장할 수 있다.
한 줄에 여러 개 입력받기
한 줄에 여러 개 입력을 받는 형태를 살펴본 후에 map과 split 함수에 대해 알아본다. 관련 자료를 찾다가 사용 예시가 있어서 가져왔다.
# 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.-와 결과는 같다.
map 함수
개념
map 함수는 iterable의 각 요소에 대해 function 함수를 적용한 결과를 새로운 iterator로 반환한다.
- iterable(반복 가능한 자료형) : 리스트, 튜플 등
map(function, iterable)
사용 (1) - square
다음은 square 함수와 numbers 리스트를 map 함수에 적용하는 예제이다.
def square(x):
return x**2
numbers = [1, 2, 3, 4, 5]
squared_numbers = map(square, numbers)
print(list(squared_numbers))
#result
>> [1, 4, 9, 16, 25]
사용 (2) - add
다음은 add 함수와 numbers 리스트를 map 함수에 적용하는 예제이다. 이번 예제처럼 함수의 매개 변수 개수에 따라 iterable을 여러 개 넣어줄 수도 있다.
def add(x, y):
return x + y
numbers1 = [1, 2, 3, 4, 5]
numbers2 = [10, 20, 30, 40, 50]
added_numbers = map(add, numbers1, numbers2)
print(list(added_numbers)) # [11, 22, 33, 44, 55]
split 함수
개념
문자열을 일정한 규칙으로 잘라 리스트로 만들어주는 함수이다.
- 구분자(default = ' ') : 문자열을 자르는 기준
- 분할 횟수(default = -1) : 앞에서부터 구분자로 문자열을 자르는 횟수
문자열.split()
문자열.split('구분자')
문자열.split('구분자', 분할횟수)
문자열.split(sep='구분자', maxsplit=분할횟수)
사용 (1) - 기본 형태
string1 = '1 2 3 4 5 6 7 8 9 0'
print(string1.split())
#result
>> ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0']
사용 (2) - 구분자, 분할횟수 지정
string1 = '1 2 3 4 5 6 7 8 9 0'
print(string1.split(' ', 3))
# result
>> ['1', '2', '3', '4 5 6 7 8 9 0']
Reference
'Python' 카테고리의 다른 글
[Python] 특정, 다중 조건으로 리스트 정렬하기 (0) | 2024.11.04 |
---|---|
[Python] 셰이프 파일(shp) 데이터의 위도, 경도 및 주소 추출하기 (1) | 2024.09.27 |
[Python] 데크(Deque) 개념과 활용 (0) | 2024.05.15 |
[Python] enumerate() 함수 개념과 활용 (0) | 2024.03.30 |
[Python] 람다(Lambda) 함수 개념과 활용 (0) | 2024.03.28 |