def ids_to_string(ids_list):
"""Converts lists of integer IDs to text"""
sorted_ids = sorted(ids_list)
ranges = []
for key, group in groupby(enumerate(sorted_ids), lambda x: x[0] - x[1]):
group = list(map(itemgetter(1), group))
if len(group) > 1:
ranges.append([group[0], group[-1]])
else:
ranges.append(group[0])
parsed = []
for r in ranges:
if isinstance(r, list):
parsed.append('%d-%d' % (r[0], r[1]))
else:
parsed.append(str(r))
return '[%s]' % ','.join(parsed)
评论列表
文章目录