Split 함수
str.split()
괄호 안에 아무 값도 넣어주지 않으면 공백(스페이스, 탭, 엔터 등)을 기준으로 문자열을 나누어 준다.
나눈 값은 리스트로 리턴해준다.
예)
str.split('구분자')
split의 첫번째 파라미터에 구분자를 직접 지정해줄 수도 있다.
str.split(sep='구분자')와 같은 형태로 쓸 수도 있다.
예)
리스트로 반환하지 않고 각각을 변수에 넣는 방법도 가능하다.
예를 들어, 위 예시의 날짜를 년도, 월, 일로 구분해서 각각 변수에 저장하고 싶다면 다음과 같은 코드를 쓰면 된다.
코드업 예제 6019 : 연월일 입력받아 순서 바꿔 출력하기
"연도.월.일"을 입력받아 "일-월-연도" 순서로 바꿔 출력해보자.
입력 예시
2020.3.4 |
출력 예시
4-3-2020 |
풀이)
year, month, day = input().split('.')
print("%s-%s-%s" % (day, month, year))
str.split('구분자', 분할횟수)
분할횟수를 지정해주는 것도 가능하다.
구분자를 생략하고 분할횟수만 지정해주고 싶다면
str.split(maxsplit = 분할횟수)
형태로 작성해주면 된다.
maxsplit을 2로 지정해주니 단어 두개까지만 구분되어 나오는 것을 볼 수 있다.
split()과 split(" ") 차이
str = "1 2 3 4 5 6"
공백이 여러개 들어가있는 문자열 str에 대해, split()과 split(" ")을 해보자.
print(str.split())
> ['1', '2', '3', '4', '5', '6']
print(str.split(" "))
> ['1', '2', '', '3', '', '', '4', '', '', '', '5', '', '', '', '', '', '6']
split()은 맨 처음에 언급했듯 공백(스페이스, 탭, 엔터) 모두를 개수에 상관없이 1개로 보고,
split(' ')는 공백 1개를 각각의 공백으로 따로따로 처리한다.
백준 1152번 : 단어의 개수 풀이
정답 비율 31.377%
문제
영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열에는 몇 개의 단어가 있을까? 이를 구하는 프로그램을 작성하시오. 단, 한 단어가 여러 번 등장하면 등장한 횟수만큼 모두 세어야 한다.
입력
첫 줄에 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 공백 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열은 공백으로 시작하거나 끝날 수 있다.
출력
첫째 줄에 단어의 개수를 출력한다.
예제 입력
The Curious Case of Benjamin Button |
예제 출력
6 |
풀이법
단어의 개수를 세는 것은 곧 split()의 결과로 나오는 리스트의 원소값(=len(리스트))를 구하는 것과 같다.
str = input()
split_result = str.split()
print(len(split_result))
출처
1. 점프투파이썬 : https://wikidocs.net/13
02-2 문자열 자료형
[TOC] ## 문자열이란? 문자열(String)이란 문자, 단어 등으로 구성된 문자들의 집합을 의미한다. 예를 들어 다음과 같은 것들이 문자열이다. ```{.no-h ...
wikidocs.net
2. 코드업 파이썬 기초 100제
3. 백준 1152번