wd2134 发表于 2015-4-30 08:28:32

python将list连续元素和非连续元素分开转换为指定字符串

已知一个由纯数字(顺序由小按大排序)元素组成的列表,比如
li=
写一个函数,让它返回如下的字符串
str='1~5,7~8,15,20~24,28'
若数字连续,中间部分用 ~ 省略。

def continuous_str(lst):
    j = 0
    str1 = ''
    for i, item in enumerate(lst):
      if i > 0:
            if lst != lst + 1:
                tmp = lst
                if len(tmp) == 1:
                  str1 += str(tmp) + ','
                else:
                  str1 += str(tmp) + "~" + str(tmp[-1]) + ','
                j = i
    tmp2 = lst
    if len(tmp2) == 1:
      str1 += str(tmp2) + ','
    else:
      str1 += str(tmp2) + "~" + str(tmp2[-1]) + ','

    return str1[:-1]

lst =
print continuous_str(lst)
页: [1]
查看完整版本: python将list连续元素和非连续元素分开转换为指定字符串