作者: 機械伯爵
日時: 2002/11/21(21:56)
 機械です。

 アルゴリズムは苦手なので、ひねり無しです。

 まぁ、文字列でもリストでもタプルでも食いま
すが・・・

def odai(lst):
  if type("") == type(lst):
    import string
    lst = string.split(lst,",")
    tlst = []
    for x in lst:
      tlst.append(int(x))
    lst=tlst
  if len(lst)<2:
    return lst
  l = [[lst[0]]]
  ln = 0
  lnn = 0 #l[ln][lnn]
  for x in range(1,len(lst)):
    if lst[x]-1 == l[ln][lnn]:
      l[ln].append(lst[x])
      lnn=lnn+1
    else:
      lnn=0
      ln = ln+1
      l.append([lst[x]])
  r = ""
  for c in range(len(l)):
    if len(l[c])==1:
      r = r + str(l[c][0])
    else:
      r = r + str(l[c][0]) + "-" + str(l[c][-1])
    r = r + ","
  return r[:-1]

 ・・・コードがスマートでないのは、Pythonのせいではなく、
私の能力の限界です。