< 입력(input), 출력(print) >
[Python(파이썬)] 입력, 출력 (input(), print())
입력 - input() 파이썬에서는 기본적으로 input()을 사용하여 입력 받는다. >>> input() Hello # 출력 'Hello' >>> input() 123 # 출력 '123' 입력받은 값을 변수에 대입하기 >>> a = input() # 입력한 값을 a에..
young-library.tistory.com
< 다양하게 입력받기 [input(), sys.stdin.readline(), strip()] >
[Python(파이썬)] 다양하게 입력받기 [input(), sys.stdin.readline(), strip(), ...]
1. input() input()은 기본적인 파이썬 입력 방법이다. input으로 입력받으면 기본적으로 str 타입으로 저장된다. 또한 list()를 사용하면 문자열을 하나하나 분리해 리스트로 만들어준다. >>> a = input() abc
young-library.tistory.com
위의 링크에 파이썬 입력에 대해서 설명되어있다.
이차원 리스트 입력받는 법
알고리즘을 풀다 보면 숫자를 입력받아 이차원 리스트로 만들어야 할 때가 많다.
크게 띄어쓰기가 있는 입력과 띄어쓰기가 없는 입력이 있다.
1. 띄어쓰기가 없는 입력
- strip() 사용 유무 차이
strip()을 사용하지 않으면 개행 문자('\n')가 들어가는 것을 확인할 수 있다.
import sys
sysinput = sys.stdin.readline
n, m = map(int, sysinput().split())
# strip 사용x
graph = [list(sysinput()) for _ in range(n)]
# strip 사용o
graph1 = [list(sysinput().strip()) for _ in range(n)]
# 입력
3 3
123
234
345
123
234
345
# 출력
# strip 사용x
graph: [['1', '2', '3', '\n'], ['2', '3', '4', '\n'], ['3', '4', '5', '\n']]
# strip 사용o
graph2: [['1', '2', '3'], ['2', '3', '4'], ['3', '4', '5']]
- strip(), split() 차이
strip() - 개행 문자 제거하는 함수
split() - 정해준 구분자를 기준으로 분할하는 함수
띄어쓰기가 없는 입력에서는 구분자를 기준으로 분할하는 함수인 split이 아닌 strip을 사용하여 개행 문자만 제거해야 한다.
따라서 띄어쓰기가 있는 입력에서는 split이 아닌 strip을 사용해야 한다.
import sys
sysinput = sys.stdin.readline
n, m = map(int, sysinput().split())
# strip()
graph = [list(map(int, input().strip())) for _ in range(n)]
# split()
graph1 = [list(map(int, input().split()) for _ in range(n)]
# 입력
6 4
0100
1110
1000
0000
0111
0000
# 출력
[[0, 1, 0, 0], [1, 1, 1, 0], [1, 0, 0, 0], [0, 0, 0, 0], [0, 1, 1, 1], [0, 0, 0, 0]]
[[100], [1110], [1000], [0], [111], [0]]
2. 띄어쓰기로 구분되어 있는 입력
- strip(), split() 차이
strip() - 개행 문자 제거하는 함수
split() - 정해준 구분자를 기준으로 분할하는 함수
띄어쓰기로 구분되어 있는 입력은 개행 문자만 제거하는 strip이 아닌 띄어쓰기를 모두 제거하는 split 함수를 사용해야 한다.
따라서 띄어쓰기가 있는 입력에서는 strip이 아닌 split을 사용해야 한다.
import sys
sysinput = sys.stdin.readline
n, m = map(int, sysinput().split())
# strip
graph = [list(sysinput().strip()) for _ in range(n)]
# split
graph2 = [list(sysinput().split()) for _ in range(n)]
# 입력
3 3
1 0 2
3 2 1
1 9 2
1 0 2
3 2 1
1 9 2
# 출력
strip: [['1', ' ', '0', ' ', '2'], ['3', ' ', '2', ' ', '1'], ['1', ' ', '9', ' ', '2']]
split: [['1', '0', '2'], ['3', '2', '1'], ['1', '9', '2']]
3. list(). Asterisk(*) 차이
입력을 list형태로 바꿀 때 list()와 '*' 모두 사용 가능하다.
import sys
sysinput = sys.stdin.readline
n, m = map(int, sysinput().split())
graph = [list(map(int, sysinput().strip())) for _ in range(n)]
graph1 = [[*map(int, sysinput().strip())] for _ in range(n)]
# 입력
6 4
0100
1110
1000
0000
0111
0000
# 출력
[[0, 1, 0, 0], [1, 1, 1, 0], [1, 0, 0, 0], [0, 0, 0, 0], [0, 1, 1, 1], [0, 0, 0, 0]]
[[0, 1, 0, 0], [1, 1, 1, 0], [1, 0, 0, 0], [0, 0, 0, 0], [0, 1, 1, 1], [0, 0, 0, 0]]
[Python(파이썬)] 별(Asterisk(*)) 연산자 (tistory.com)
[Python(파이썬)] 별(Asterisk(*)) 연산자
Asterisk(*) 연산자 하나의 * 연산자는 리스트 또는 튜플에 있는 원소들을 개별 인자로 분리해 차례대로 꺼내서 함수 인자에 대응시킨다. ex1) >>> a = [1,2,3] >>> print(a) [1, 2, 3] >>> print(*a) 1 2 3 a 리..
young-library.tistory.com
'Study > Python study' 카테고리의 다른 글
[Python(파이썬)] for문(반복문), if문(조건문) (0) | 2022.03.10 |
---|---|
[Python(파이썬)] 파이썬 공백 제거 (strip, replace) (0) | 2021.12.01 |
[Python(파이썬)] 다양하게 입력받기 [input(), sys.stdin.readline(), strip()] (0) | 2021.12.01 |
[Python(파이썬)] 입력, 출력 (input(), print()) (0) | 2021.12.01 |
[Python(파이썬)] split 함수 (0) | 2021.12.01 |
댓글