파이썬 문자열 순서 정렬

조회수 276회

파이썬에서 문자열을 원하는 순서대로 규칙적으로 배열하려면 어떻게 해야 하나요?

예를 들어서 원하는 순서가 1423이라고 한다면

"iloveyoutooo" =>"ivloeuyotooo" 이런식으로요.

+그니까 4개씩 끊어서 순서대로 배열하는 거에요

2 답변

  • 이거 기반으로 하면 될 것 같은데요.

    a = 'iloveyoutooo'
    for i in range(len(a))[::4]:
        print(a[i:i + 4], end = '')
    
  • numpy 를 이용해본 방법입니다.

    import numpy as np
    
    a = 'iloveyoutooo'
    
    ## a 의 크기가 4의 배수가 아니면 패딩이 필요함.
    
    ## 2차원의 N x 4 배열로 변형
    a = np.array(list(a)).reshape((-1,4))
    
    print("--2차원배열로 변형")
    print(a)
    
    ## 컬럼방향 순서를 바꿈.
    a = a[:, [0,3,1,2]]
    
    print("--컬럼방향 순서바꾸기")
    print(a)
    
    ## 1차원 배열로 변형
    a = a.reshape((1, -1))
    
    print("--1차원배열로 변형")
    print(a)
    
    ## 배열을 문자열로 변형
    a = ''.join(a[0])
    
    print("--문자열로 변경")
    print(a)
    
    --2차원배열로 변형
    [['i' 'l' 'o' 'v']
     ['e' 'y' 'o' 'u']
     ['t' 'o' 'o' 'o']]
    --컬럼방향 순서바꾸기
    [['i' 'v' 'l' 'o']
     ['e' 'u' 'y' 'o']
     ['t' 'o' 'o' 'o']]
    --1차원배열로 변형
    [['i' 'v' 'l' 'o' 'e' 'u' 'y' 'o' 't' 'o' 'o' 'o']]
    --문자열로 변경
    ivloeuyotooo
    

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

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

(ಠ_ಠ)
(ಠ‿ಠ)