Python; -1을 입력받을 때 까지 계속 input()받기

종종 문제를 풀다보면 -1을 입력 받을때 까지 계속 입력받는 경우가 있음

이럴때 어떻게 간결하게 입력받을지 고민을 하다가 작성함

 

배열에 -1을 입력받기 전까지 입력받은 값을 추가하는 코드를 작성해보겠음

1. 이터레이터를 사용한 방법

짧으면서도 보기 편함

n = []
for i in iter(input, '-1'):
    n.append(int(i))

 

이 코드를 더 짧게 한 줄로 나타내면

n = list(map(int, iter(input, '-1')))

 

또 비슷하게 응용해서 아래와 같이 한 줄로 나타낼 수 있음

n = [int(x) for x in iter(input, '-1')]

 

 

 

2. while을 사용한 방법

가장 일반적으로 사용하는 방법임

n=[]
while True:
    n=int(input())
    if(n==-1): break
    else: num.append(n)

 

3. walrus 연산자 + while을 사용한 방법

while을 사용한 방법과 거의 같은데, 이 방법은 조건식에서 walrus 연산자를 사용해서 더 간결해짐

n = []
while (x := int(input())) != -1:
    n.append(x)

댓글