파이썬) 리스트 정렬 관련해서 질문합니다.
조회수 711회
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9]
output = [[], [], []]
for number in numbers:
output[(number+2)%3].append(number)
print(output)
의 소스코드를 실행하면 나머지값 0
,1
,2
가 나오는 요소대로 묶은상태로 출력되는데요.
[1, 4, 7], [2, 5, 8], [3, 6, 9]
이상태에서 [1, 2, 3], [4, 5, 6], [7, 8, 9]
순서대로 정렬하고 싶습니다.
가능하면 sort()
함수를 이용하는 방법도 궁금합니다.
-
(•́ ✖ •̀)
알 수 없는 사용자 - 〉
1 답변
-
질문에 목적 및 이유가 없으므로 지엽적으로 밖에는 유추할 수 밖에 없습니다.
flattern -> sort -> slice
를 진행하는 샘플입니다.import itertools as it L = [[1, 4, 7], [2, 5, 8], [3, 6, 9]] flatten_L = sorted(it.chain(*L)) # [1, 2, 3, 4, 5, 6, 7, 8, 9] _iter = iter(flatten_L) list(iter(lambda: list(it.islice(_iter, 3)), [])) # [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
댓글 입력