본문 바로가기
파이썬 코딩 기록

[Python] 파이썬 리스트 입력 받기 (예제 코드 포함)

by 파이썬코딩대학 2024. 12. 26.

파이썬에서 리스트 입력 받기: 이렇게 하면 된다

파이썬을 배우다 보면 리스트를 입력받아야 하는 상황이 종종 있다. 특히 코딩 테스트나 알고리즘 문제를 풀 때, 사용자로부터 여러 개의 숫자나 문자열을 한 번에 입력받아야 할 때가 많다. 그런데 어떻게 하면 효율적으로 리스트를 입력받을 수 있을까?

여기서 내가 직접 겪은 경험과 함께 다양한 방법들을 소개해보겠다.

1. 기본적인 입력 방법

가장 흔히 사용하는 방법은 input() 함수를 이용하는 것이다.

# 숫자 N개를 입력받아 리스트로 저장
numbers = input().split()

하지만 이렇게 하면 입력된 값들은 모두 문자열로 취급된다. 만약 숫자로 활용하려면 int()로 형변환을 해줘야 한다.

# 문자열을 정수로 변환하여 리스트에 저장
numbers = [int(x) for x in input().split()]

2. 맵(Map) 함수를 사용하기

리스트 내포보다 map() 함수를 사용하는 방법도 있다. 개인적으로는 이 방법이 코드가 깔끔해 보여 선호한다.

numbers = list(map(int, input().split()))

3. 여러 줄에 걸쳐 입력 받기

가끔은 여러 줄에 걸쳐서 데이터를 입력받아야 할 때도 있다. 예를 들어 N개의 줄에 걸쳐 한 개씩의 숫자를 입력받는 경우다.

N = int(input())
numbers = [int(input()) for _ in range(N)]

내가 예전에 코딩 테스트를 준비할 때, 이 방법을 몰라서 애를 먹었던 기억이 난다. 그때는 그냥 N번의 input()을 쓰는 줄 알았는데, 리스트 내포를 활용하니 코드가 훨씬 간결해졌다.

4. sys.stdin.readline() 사용하기

input() 함수는 내부적으로 버퍼링이 되기 때문에 입력 속도가 느릴 수 있다. 입력 데이터가 많을 때는 sys.stdin.readline()을 사용하는 것이 좋다.

import sys

numbers = list(map(int, sys.stdin.readline().split()))

하지만 sys.stdin.readline()을 사용할 때는 문자열 끝에 개행 문자가 포함되므로 주의해야 한다.

5. 예시로 보는 전체 코드

여기까지 설명한 것을 종합해서, 예시 코드를 작성해보았다.

import sys

# 첫째 줄에 데이터의 개수 N 입력
N = int(sys.stdin.readline())

# N개의 숫자를 입력받아 리스트에 저장
numbers = [int(sys.stdin.readline()) for _ in range(N)]

print(numbers)

마치며

파이썬에서 리스트를 입력받는 방법은 여러 가지가 있다. 상황에 맞게 적절한 방법을 선택하면 된다. 처음에는 헷갈릴 수 있지만, 여러 번 연습하고 활용해보면 금방 익숙해질 것이다.

나도 처음에는 입력받는 것 때문에 시행착오를 많이 겪었지만, 이제는 어떤 방식이든 척척 사용할 수 있게 되었다. 여러분도 직접 코드를 작성해보며 익혀보길 바란다.