Python-构建索引

Python-构建索引,python,Python,我是Python的初学者,为了构建书籍索引,我必须用Python编写一个函数,该函数必须返回一个字符串。作为参数,函数必须采用列表。 例如,我的页面索引可以采用以下形式:[1,2,3,4,12]。返回的字符串应采用以下形式:“1-4,12”。 在这里,破折号代替了1和4之间的数字,逗号应该将不遵循数字顺序的章节分开。 另一个序列:[0,2,3,4569]。 谢谢你的提示! BeBop您可以这样做: import itertools def ranges(i): for a, b in

我是Python的初学者,为了构建书籍索引,我必须用Python编写一个函数,该函数必须返回一个字符串。作为参数,函数必须采用列表。 例如,我的页面索引可以采用以下形式:[1,2,3,4,12]。返回的字符串应采用以下形式:“1-4,12”。 在这里,破折号代替了1和4之间的数字,逗号应该将不遵循数字顺序的章节分开。 另一个序列:[0,2,3,4569]。 谢谢你的提示!
BeBop

您可以这样做:

import itertools

def ranges(i):
    for a, b in itertools.groupby(enumerate(i), lambda (x, y): y - x):
        b = list(b)
        yield b[0][1], b[-1][1]

print(list(ranges([1, 2, 3, 4, 12])))
输出:

[[1, 4], 12]

一些带有更具体问题的代码,请?“到目前为止您尝试了什么?”尝试询问stackoverflow;)应该有一个“我们不会为你做家庭作业”的结束理由(好主意,但不是我的……我只是在这里读到:)