파이썬 대문자 구분, 스트링 나누기

조회수 6558회

a = "AaronMOOYAustraliaMidfielder" 이란 스트링이 있을 때 이름 국가 포지션으로 구분하여 " "띄어쓰기 또는 -을 추가하려고 합니다. 그러기 위해서 구분되는 부분을 소문자-> 대문자 되는 부분을 찾으려고 합니다. 도움 부탁 드립니다.

  • 소문자->대문자를 찾는다고 해결할 수 있는 문제가 아닙니다. 위의예에서 nM 과 aM 이 소문자->대문자로 이어지는 구간입니다. 질문자가 원하는 답은 AaronMOOY Australia Midfielder 죠 즉 소문자->대문자 구간을 찾는다고 해결되는 문제가 아닙니다. 사실 문제는 컴퓨터는 의미(시멘틱)를 알 수 없다는데 있습니다. 의미가 왜 중요한가 예를 들어보면 사람 이름중에 국가명이 들어갈 수 있기 때문에 사람 이름인지 국가명인지 구분할 수 있어야합니다. 그나마 해볼만한 방법은 포지션별 사전을 만들어 문장에 포함되어 있는지 확인하고 자르는 겁니다. 즉 포지션은 몇개 단어가 안되므로 문장에서 포지션 단어가 있으면 자르고 마찬가지로 국가명 사전을 가지고 국가명이 존재하면 자르는 식으로 하면 그나마 완성도를 높일 수 있습니다. 정영훈 2018.6.16 02:26
  • 감사합니다!! 크롤링을 다른 방법으로 해와야할 것 같네여!! 고민해보겠습니다. Kwansu Kim 2018.6.16 08:35

1 답변

  • 좋아요

    0

    싫어요
    채택 취소하기

    제일 기초적으로(?) 짜려면 for문과 islower(), isupper() 함수를 사용해야합니다. islower 함수는 어떤 str이 소문자로 구성되어있는지를 판단하고 isupper 함수는 어떤 str이 대문자로 구성되어있는지를 판단합니다.

    대략적인 코드는 다음과 같습니다.

    mystring = 'AaronMOOYAustraliaMidfielder'
    answer = mystring[0]
    for idx, char in enumerate(mystring[1:]):
        if mystring[idx].islower() and char.isupper():
            answer += '-'
        answer += char
    print(answer)
    
    • 감사합니다!! 크롤링을 다른 방법으로 해오려고 합니다. islower supper함수 다른 곳에 잘 이용하겠습니다^^! Kwansu Kim 2018.6.16 08:36

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)