728x90
반응형
다음과 같이 숫자 list에서 연속된 숫자값이 있는 경우, 해당 숫자끼리 그룹핑 하고 이를 dictionary 포맷으로 바꿔주는 함수
more_itertools라는 pakcage를 사용하면 간단하게 해결 가능하다.
다만, 이 함수의 시간복잡도가 최적인지는 모르겠다. 소요 시간에 구애될 경우, 다른 방법을 찾아보는 것도 좋을 것 같다.
import more_itertools as mit
a = [0, 1, 2, 6, 7, 10, 13, 15]
x = [list(j) for j in mit.consecutive_groups(sorted(list(set(a_index))))]
dct_x = {i[0]: i for i in x}
print(dct_x)
# {0: [0, 1, 2], 6: [6, 7], 10: [10], 13: [13], 15: [15]}
728x90
반응형