파이썬 문자열 순서 정렬
조회수 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
댓글 입력