파이썬 split 여러개 - paisseon split yeoleogae

림코딩

  • 분류 전체보기 (198)
    • elasticsearch (8)
    • Docker (2)
    • Excel (8)
    • Python (88)
    • JAVA (4)
    • Linux (23)
    • Backjoon (12)
    • .Net (3)
    • GIT (8)
    • ETC (30)
    • Book (1)
    • 직장인의 소회 (0)
    • 비트코인 자동매매 (1)

POWERED BY TISTORY


Python

lim 2021. 10. 27. 23:07

파이썬 split 여러개 - paisseon split yeoleogae

만약 문자열이 아래와 같다고  가정해보자.

str = "a    b            c              d       e f"

만약 위 문자열의 공백(Space)를 하나로 만들어서 아래와 같은 문자열로 만들고 싶다면 어떻게 해야할까?

a b c d e f

변환방법

str = "a    b c    d   e           f"

new_str = ' '.join(str.split())

print(new_str)

# 출력
a b c d e f

코드를 소개하면 위와 같다.

' '.join(str.split())

부분은 str 변수를 split함수를 통해서 공백단위로 쪼개고 리스트로 만든후 join 함수를 통해서 ' '(공백) 한개로 합치는 명령이다. 

참고 : join과 split에 대한 소개글 (https://devpouch.tistory.com/77)

저작자표시

'Python' 카테고리의 다른 글

[python] byte 단위 변환 코드(byte ->kb, mb, gb, tb, pd, eb)  (0)2021.10.28
[python] 소수점 반올림, 올림, 내림하는 코드  (0)2021.10.28
[pandas] SettingWithCopyWarning 경고 끄기  (0)2021.10.17
[python pandas] 주식 이격도(disparity) 구하기  (0)2021.10.17
[python pandas] 주식 이동평균선 구하기  (0)2021.10.17

태그

파이썬

  • 파이썬 split 여러개 - paisseon split yeoleogae
    [python] byte 단위 변환 코드(byte ->kb, mb, gb, tb, pd, eb)
  • 파이썬 split 여러개 - paisseon split yeoleogae
    [python] 소수점 반올림, 올림, 내림하는 코드
  • 파이썬 split 여러개 - paisseon split yeoleogae
    [pandas] SettingWithCopyWarning 경고 끄기
  • 파이썬 split 여러개 - paisseon split yeoleogae
    [python pandas] 주식 이격도(disparity) 구하기

    Secret


    지금까지 input 한 번에 값 하나만 입력받았습니다. 그럼 input 한 번에 값을 여러 개 입력받으려면 어떻게 해야 할까요? 이때는 input에서 split을 사용한 변수 여러 개에 저장해주면 됩니다(각 변수는 콤마로 구분해줍니다).

    • 변수1, 변수2 = input().split()
    • 변수1, 변수2 = input().split('기준문자열')
    • 변수1, 변수2 = input('문자열').split()
    • 변수1, 변수2 = input('문자열').split('기준문자열')

    먼저 문자열 두 개를 입력받아 보겠습니다. 다음 내용을 IDLE의 소스 코드 편집 창에 입력하세요.

    input_split_string.py

    a, b = input('문자열 두 개를 입력하세요: ').split()    # 입력받은 값을 공백을 기준으로 분리
     
    print(a)
    print(b)
    

    소스 코드를 실행하면 '문자열 두 개를 입력하세요: '가 출력됩니다. 이 상태에서 Hello Python을 입력하고 엔터 키를 누르세요.

    실행 결과

    문자열 두 개를 입력하세요: Hello Python (입력)
    Hello
    Python
    

    inputsplit을 사용하면 입력받은 값을 공백을 기준으로 분리하여 변수에 차례대로 저장합니다(split은 분리하다, 나누다라는 뜻입니다). 여기서는 문자열 'Hello Python'을 공백을 기준으로 분리하여 'Hello'는 첫 번째 변수 a'Python'은 두 번째 변수 b에 저장합니다.

    a , b  = input('문자열 두 개를 입력하세요: ').split()
    

    6.4.1두 숫자의 합 구하기

    그럼 숫자 두 개를 입력 받아서 두 숫자의 합을 구해보겠습니다.

    input_split_int.py

    a, b = input('숫자 두 개를 입력하세요: ').split()    # 입력받은 값을 공백을 기준으로 분리
     
    print(a + b)
    

    실행 결과

    숫자 두 개를 입력하세요: 10 20 (입력)
    1020
    

    30이 나와야 하는데 1020이 나왔습니다. 왜냐하면 input에서 입력받은 값은 문자열이고, 이 문자열은 split으로 분리해도 문자열이기 때문입니다. 여기서는 문자열 '10 20'을 공백을 기준으로 분리하여 a에는 '10', b에는 '20'이 저장되므로 +로 연결하면 '1020'이 나옵니다.

    a , b  = input('숫자 두 개를 입력하세요: ').split()
    

    6.4.2입력 값을 정수로 변환하기

    10 + 20의 결과가 30이 나오게 하려면 변수 ab를 정수로 변환해주어야 합니다.

    input_split_int.py

    a, b = input('숫자 두 개를 입력하세요: ').split()    # 입력받은 값을 공백을 기준으로 분리
    a = int(a)    # 변수를 정수로 변환한 뒤 다시 저장
    b = int(b)    # 변수를 정수로 변환한 뒤 다시 저장
     
    print(a + b)
    

    실행 결과

    숫자 두 개를 입력하세요: 10 20 (입력)
    30
    

    a = int(a)와 같이 int에 변수를 넣은 뒤 다시 변수에 저장해주면 변수가 정수 자료형으로 변환됩니다. 이때 int(a)처럼 int만 사용하고 결과를 변수에 저장하지 않으면 정수로 변환되지 않습니다. 이 부분 꼭 기억해두세요.

    물론 print 안에서 int로 변수를 변환하고 바로 더해도 상관없습니다.

    6.4.3map을 사용하여 정수로 변환하기

    split의 결과를 매번 int로 변환해주려니 귀찮습니다. 이때는 map을 함께 사용하면 됩니다. mapintinput().split()을 넣으면 split의 결과를 모두 int로 변환해줍니다(실수로 변환할 때는 int 대신 float를 넣습니다.).

    • 변수1, 변수2 = map(int, input().split())
    • 변수1, 변수2 = map(int, input().split('기준문자열'))
    • 변수1, 변수2 = map(int, input('문자열').split())
    • 변수1, 변수2 = map(int, input('문자열').split('기준문자열'))

    다음 내용을 IDLE의 소스 코드 편집 창에 입력하세요.

    map_input_split.py

    a, b = map(int, input('숫자 두 개를 입력하세요: ').split())
     
    print(a + b)
    

    실행 결과

    숫자 두 개를 입력하세요: 10 20 (입력)
    30
    

    입력받는 부분과 int로 변환하는 부분이 한 줄로 줄었습니다. 이렇게 input().split()을 사용할 때 map을 사용하면 코드를 짧게 줄일 수 있습니다. map은 '22.6 리스트에 map 사용하기'에서 자세히 설명하겠습니다. 지금은 이렇게 사용하면 된다는 정도만 알아 두면 됩니다.

    6.4.4입력받은 값을 콤마를 기준으로 분리하기

    이번에는 split에 기준 문자열을 지정하여 공백이 아닌 다른 문자로 분리해보겠습니다.

    map_input_split_comma.py

    a, b = map(int, input('숫자 두 개를 입력하세요: ').split(',')) # 입력받은 값을 콤마를 기준으로 분리
     
    print(a + b)
    

    소스 코드를 실행한 뒤 '숫자 두 개를 입력하세요: '가 출력되면 10,20을 입력하고 엔터 키를 누르세요.

    실행 결과

    숫자 두 개를 입력하세요: 10,20 (입력)
    30
    

    split(',')과 같이 분리할 기준 문자열을 콤마로 지정하였으므로 '10,20'에서 10은 a, 20은 b에 저장됩니다.

    지금까지 변수를 만들고 input 함수를 사용해보았습니다. 변수는 값이나 계산 결과를 저장할 때 사용한다는 점, 변수를 만드는 방법, 변수 이름을 짓는 방법만 기억하면 됩니다. 특히 inputsplit의 결과가 문자열라는 점이 중요합니다. 따라서 숫자 계산을 한다면 int, float를 사용해서 결과를 숫자로 변환해주어야 한다는 점 기억하세요. 그리고 split의 결과를 모두 int, float로 변환할 때는 map을 사용하면 편리합니다.