Python list cumsum 관련 질문입니다.
조회수 530회
안녕하세요. 파이썬에 입문한지 얼마 되지 않아 어려움을 느끼고 있는 입문자입니다.
제가 궁금한 내용은 리스트에 관한 cumsum함수 적용입니다.
list1 = [2, 2, 3, 3, 3, 1, 4, 4, 4, 4, 2, 2]
이러한 리스트가 있다면 중복 값을 제외한 값들로 cumsum을 하고 싶습니다.
제가 원하는 결과 값은
list1_result = [2, 2, 5, 5, 5, 6, 10, 10, 10, 10, 12, 12]
이러한 리스트 결과 값을 얻고 싶습니다.
도움 감사합니다.
-
(•́ ✖ •̀)
알 수 없는 사용자
2 답변
-
list1 = [2, 2, 3, 3, 3, 1, 4, 4, 4, 4, 2, 2] cumsum = [] prev = 0 for i, e in enumerate(list1): if i == 0: cumsum.append(e) # 처음합은 첫번째 원소. elif prev == e: cumsum.append(cumsum[-1]) # 이전것과 같으면 마지막합 다시 사용. else: cumsum.append(cumsum[-1]+e) # 마지막합에 이번 원소를 합한다. prev = e print(cumsum)
-
list1 = [2, 2, 3, 3, 3, 1, 4, 4, 4, 4, 2, 2] import itertools as it list(it.chain(*it.accumulate([list(v) for _, v in it.groupby(list1)], lambda a, b:[a[0] + i for i in b]))) [2, 2, 5, 5, 5, 6, 10, 10, 10, 10, 12, 12]
댓글 입력