리스트에 있는 숫자를 문자로 변환

조회수 601회

[1, 2, 3, 4] 와 같은 리스트가 주어졌을 때,

1 = '1'
2 = '2'
3 = 'a'
4 = 'b'

특정 숫자에 특정 문자를 반환할 수 있도록 하는 방법이 있을까요?

원하는 결과 값은 ['1' ,'2','a','b'] -> 최종적으로는 '12ab' 로 출력하고 싶습니다.

하나씩 할당하는 방법으로 접근해야할 것 같은데 감이 잡히지 않습니다.

  • 숫자는 변수로 사용하지 못할텐데요? 초보자 2021.3.4 15:57

2 답변

  • 좋아요

    1

    싫어요
    채택 취소하기

    1, 2, 3, 4 에 대한 매핑이 존재하고, 매핑 후의 결과를 join 하려는 거잖아요.

    
    >>> l = [ 1, 2, 3, 4 ]
    >>> map_table = { 1:"1", 2:"2", 3:"a", 4:"b" }
    >>> mapped = [ map_table[e] for e in l ]
    >>> mapped
    ['1', '2', 'a', 'b']
    >>> ''.join(mapped)
    '12ab'
    >>> 
    >>> 
    >>> def map_join(l: list):
        return ''.join(map_table[e] for e in l)
    
    >>> map_join([1,2,3,4])
    '12ab'
    >>> map_join([2,3,1,2])
    '2a12'
    >>> map_join([1,1,1,1])
    '1111'
    >>> 
    
    
  • 정확히 어떤 것을 원하시는 건지는 잘 모르겠는데.. 일단 질문 내용의 경우 다음과 같이 구현할 수 있습니다.

    list1 = [1, 2, 3, 4]
    
    a = ''
    for i in list1:
        if i == 1:
            a += '1'
        elif i == 2:
            a += '2'
        elif i == 3:
            a += 'a'
        elif i == 4:
            a += 'b'
    
    print(a)
    >> '12ab'
    
    또는
    
    list1 = [1, 2, 3, 4]
    dict1 = {1:'1', 2:'2', 3:'a', 4:'b'}
    
    a = ''
    for i in list1:
        a += dict1[i]
    
    print(a)
    >> '12ab'
    

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

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

(ಠ_ಠ)
(ಠ‿ಠ)