파이썬에서 리스트 입력 받기: 이렇게 하면 된다
파이썬을 배우다 보면 리스트를 입력받아야 하는 상황이 종종 있다. 특히 코딩 테스트나 알고리즘 문제를 풀 때, 사용자로부터 여러 개의 숫자나 문자열을 한 번에 입력받아야 할 때가 많다. 그런데 어떻게 하면 효율적으로 리스트를 입력받을 수 있을까?
여기서 내가 직접 겪은 경험과 함께 다양한 방법들을 소개해보겠다.
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)
마치며
파이썬에서 리스트를 입력받는 방법은 여러 가지가 있다. 상황에 맞게 적절한 방법을 선택하면 된다. 처음에는 헷갈릴 수 있지만, 여러 번 연습하고 활용해보면 금방 익숙해질 것이다.
나도 처음에는 입력받는 것 때문에 시행착오를 많이 겪었지만, 이제는 어떤 방식이든 척척 사용할 수 있게 되었다. 여러분도 직접 코드를 작성해보며 익혀보길 바란다.
'파이썬 코딩 기록' 카테고리의 다른 글
파이썬 다른 파일 함수 호출하는 방법 (예시 코드 포함, 복붙하셈) (1) | 2024.12.26 |
---|---|
파이썬 no such file or directory 해결 방법 (복붙하면 바로 해결) (0) | 2024.12.25 |
[파이썬] for 문, 반복문 사용 방법(코딩 예제 포함) (0) | 2024.12.25 |
파이썬으로 네트워크 패킷 스니핑 구현하기: 기초부터 실습까지 (1) | 2024.12.21 |
크롬 드라이버 특정 버전 다운 받는법, 모든 버전 보는법(chromedriver.exe 특정 버전 다운받기) (0) | 2024.12.16 |