파이썬 문자열 리스트에서 특정문자 발견시 줄바꾸기

조회수 1847회

리스트에 1이라는 문자가 있을때마다 줄바꿈을 하고싶습니다.

시도해본 코드는 아래와 같습니다.

list_s = ["a","1","b","e","c","1","d","1","e"]


list_t = ["a","e"]

unit = ["1"]


cnt =0

for value in list_s:

    if value in list_t:
        del list_s[cnt]

    elif value in unit:
        list_s.insert(cnt-1,'\n')    #이 부분이 안되네요;;
    cnt += 1

print(list_s)
  • (•́ ✖ •̀)
    알 수 없는 사용자
  • 현재 for loop에서 쓰이고 있는 리스트는 가급적으로 수정 및 늘리거나 줄이는 것은 삼가야 합니다. 알 수 없는 사용자 2020.5.3 02:35

1 답변

  • list_s = ["a","1","b","e","c","1","d","1","e"]
    list_t = ["a","e"]
    unit = ["1"]
    
    temp = ""
    cnt =0
    
    for idx, value in enumerate(list_s):
        if value in list_t:
            temp += "\n"
        else:
            temp += value
    
    print(temp)
    
    #result
    
    1b
    c1d1
    
    

    리스트에 \n 넣어도 리스트로 출력시에는

    ['\n', '1', 'b', '\n', 'c', '1', 'd', '1', '\n']

    형식으로 나옵니다.

    위의 방식 말고 리스트의 내용을 변경하기에는

    list_s = ["a","1","b","e","c","1","d","1","e"]
    list_t = ["a","e"]
    unit = ["1"]
    
    temp = ""
    cnt =0
    
    for idx, value in enumerate(list_s):
        if value in list_t:
            list_s[idx] = "\n"
        else:
            list_s[idx] = value
    
    print(''.join(list_s))
    
    #result
    
    1b
    c1d1
    
    

    동일한 실행 결과를 볼수도 있습니다.

    • 문자 1앞에서 줄바꿈하도록 하는 것은 어떻게 하나요? 알 수 없는 사용자 2020.5.3 12:51
    • 그리고 문자 1은 삭제가 안되야 합니다. 알 수 없는 사용자 2020.5.3 12:52
    • 출력만이 목적이라면 "1\n" 하면 됩니다. 리스트 내용을 수정하려면 1 이후내용을 하나씩 밀어내면 되구요 김호원 2020.5.3 13:38
    • 출력을 임의로 1넣어서 하려고 하는 것은 아닙니다. 알 수 없는 사용자 2020.5.3 14:03

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

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

(ಠ_ಠ)
(ಠ‿ಠ)