작성
·
166
0
안녕하세요 선생님!
readline이 입력이 빠르다고 해서 가능하면 readline을 이용해서 입력을 받고 싶습니다.
그런데 readline을 이용해서 보드판 입력을 받으면 원하지 않는보드판이 만들어지는데 그 이유를 모르겠어서 질문드립니다!
#1
import sys
sys.stdin=open("input.txt","rt")
if __name__=="__main__":
board = [ list(map(int, sys.stdin.readline().rstrip().split())) for _ in range(10) ]
for x in board:
print(x)
위처럼 보드를 만들면 첫번째 행은 무시되면서 마지막 행은 빈 리스트가 생성됩니다.
#2
import sys
sys.stdin=open("input.txt","rt")
input=sys.stdin.readline().rstrip
if __name__=="__main__":
board = [ list(map(int, input().split())) for _ in range(10) ]
for x in board:
print(x)
위 처럼 보드 입력을 받으면 첫번째 행을 10개 복사한 보드가 만들어지니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
답변 1
0
안녕하세요^^
rstrip 를 제거해주니 제대로 입력되네요. 이유는 저도 잘 모르겠습니다. 2차원 배열은 이렇게 해야 하나 봅니다.
import sys
sys.stdin=open("in1.txt","rt")
input=sys.stdin.readline
if __name__=="__main__":
board = [ list(map(int, input().split())) for _ in range(10) ]
for x in board:
print(x)
일단은 이차원배열은 strip하지않고,
string을 다루는 입력만 strip을 해주면서 풀어봐야겠네요!
감사합니다!