이 코드 실행 메커니즘에 대해 알려주세요

조회수 549회
data = """
park 800905-1049118
kim 700905-1059119
"""

result = []
for line in data.split("\n"): #여기서 데이터를 줄별로 나눈다.
    word_result = []
    for word in line.split(" "): #줄별로 나눈 데이터를 띄어쓰기 별로 나눈다.
        if len(word) ==14 and word[:6].isdigit() and word[7:].isdigit(): #word안에 있는 데이터 중 주민번호 데이터를 바꾼다.
            word = word[:6] + "-" + "*******"
        word_result.append(word) #이름이랑 바꾼 주민번호를 word_result에 넣는다.
    result.append(" ".join(word_result)) #여기서 결합되면 result -> park 800905-******* kim 700905-******* 한줄로 결합이 되는건데

print("\n".join(result)) # 여기서 어떻게 줄별로 나눠지는건지 모르겠습니다.

#결과가 이렇게 오는데 어떻게 이렇게 되는건지 모르겠습니다. 다 결합 후 4줄로 되는거 아닌가 싶어서
park 800905-*******
kim 700905-*******

주석을 봐주세요

  • 한줄로 합친 각 문자열들 사이사이에 newline을 넣고 하나의 문자열로 만든것입니다. 쉽게 말해 사이사이에 엔터를 친거죠. join 함수가 무엇이고 어떻게 동작하는지 찾아보시면 될 것 같습니다. HIAOAIH 2021.5.5 12:55
  • 근데 그렇게 되면 4줄로 나와야 되는것이 아닌가 싶어서요 Kkamz 2021.5.5 12:59

1 답변

  • data = """
    park 800905-1049118
    kim 700905-1059119
    """
    
    result = []
    for line in data.split("\n"): #여기서 데이터를 줄별로 나눈다.
        word_result = []
        for word in line.split(" "): #줄별로 나눈 데이터를 띄어쓰기 별로 나눈다.
            if len(word) ==14 and word[:6].isdigit() and word[7:].isdigit(): #word안에 있는 데이터 중 주민번호 데이터를 바꾼다.
                word = word[:6] + "-" + "*******"
            word_result.append(word) #이름이랑 바꾼 주민번호를 word_result에 넣는다.
        result.append(" ".join(word_result)) #여기서 결합되면 result -> park 800905-******* kim 700905-******* 한줄로 결합이 되는건데
    
    print("\n".join([ str(i) + l for i, l in enumerate(result)])) # 여기서 어떻게 줄별로 나눠지는건지 모르겠습니다.
    
    

    이렇게 실행해 보면 아시겠지만, 안보일 뿐이지, 4라인이 인쇄됩니다.

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

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

(ಠ_ಠ)
(ಠ‿ಠ)