파이썬 리스트 2개를 사용하여 하나의 리스트 수정하기

조회수 723회

리스트가 두개가 있는데 한 리스트에 있는 값을 제거하고 "____" 이 문자열로 교체하고 싶습니다.

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

list_s = ["a","b","c","d","e"]
list_t = ["a","b"]
list_s2 = []

cnt =0
for value in list_s:
     if value == list_t[cnt]:
        del list_s[cnt]
        list_s[cnt].append("___")
     cnt += 1


print(list_s)
  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • 리스트를 (심지어 인덱스 기준으로) 순회하고 있는데 그 순회 중인 리스트의 특정 인덱스를 삭제해 버리는 것은 좋은 아이디어가 아닙니다. 예컨대 del list_s[0]이 실행되고 나면, 그 바로 다음 줄부터는 list_s[0]'a'나 뭐 다른게 아니라 그냥 'b'일 겁니다.

    구현하려고 하시는 것이 일종의 빈칸채우기 퀴즈라고 가정하면, 저라면 map, lambda 그리고 thing in list 구문으로 접근하겠습니다.

    list_s = ['자수하라', '마지막에', '잡히면', '가장', '가혹하게', '처벌할', '것이다']
    list_t = ['가혹하게', '처벌할']
    
    list_s2 = list(map(lambda x: '___' if x in list_t else x, list_s))
    
    • 코드 설명좀 부탁드려도 될까요? 알 수 없는 사용자 2020.5.3 01:31
    • list_s2 = 새리스트를만드시오(목록을변환하시오(x에대한다음규칙에따라 : x가 list_t 중에있다면 '___' 아니면 x, list_s)) 엽토군 2020.5.3 02:37
    • 이 이상의 자세한 설명은 링크를 붙여드렸으니 하나하나 공부하시길 정중히 요청드립니다. 엽토군 2020.5.3 02:43

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

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

(ಠ_ಠ)
(ಠ‿ಠ)