파이썬 연속된 숫자 간략히 표현할 수 있을까요?

lhc9763의 이미지

안녕하세요. 머리가 안 좋아서 다음과 같은 내용을 어떻게 프로그래밍 해야할지 감이 잘 안잡히네요 ㅠㅠ 도움 좀 주실 수 있으신가요~

상황과 결과는 다음과 같습니다.

예를 들어

하나의 리스트에 1, 2, .., 9, 10, 12, 14, 15, .., 19, 20 이런 식으로 숫자가 있을 때

[1-10,12,14-20] 이런 식으로 출력하고 싶은데 잘 안 되네요.. [1-10,12-12,14-19] 이렇게 출력하는 게 저의 최선입니다 ㅠㅠㅠ

도저히 머리가 안 돌아가서 질문 드립니당.. 도와주세요 멋쟁이 형님들!!

라스코니의 이미지

일단 왜 20은 안 찍히는 건가요?
마지막 20을 안 읽었나요? 아니면 읽었지만 고려를 안한건지..

lhc9763의 이미지

제가 짠 것은 포문에서 현재 숫자가 False일 때 이전 숫자를 추가했고든요.. 그래서 안 됐어요

익명 사용자의 이미지

lhc9763의 이미지

헐 감사합니다!ㅠㅠ

세벌의 이미지

from itertools import groupby
from operator import itemgetter
data = [ 1, 4,5,6, 10, 15,16,17,18, 22, 25,26,27,28]
for k, g in groupby(enumerate(data), lambda (i, x): i-x):
    print map(itemgetter(1), g)

파이썬으로 위 코드 실행했는데, 저는 왜 아래 에러가 나는 건가요?
Lambda expression parameters cannot be parenthesized