我正在尝试使用Python格式化整数列表,并且遇到了一些困难,实现了我想要的功能。格式化连续号码
输入是整数的排序列表:
list = [1, 2, 3, 6, 8, 9]
我想它的输出是一个字符串看起来像这样:
outputString = "1-3, 6, 8-9"
到目前为止,所有我设法实现是这样的:
outputString = "1-2-3, 6, 8-9"
我很难告诉我的代码忽略一个Int如果它已经是连续的。
这里是我到目前为止的代码:
def format(l):
i = 0
outputString = str(l[i])
for x in range(len(l)-1):
if l[i + 1] == l[i]+1 :
outputString += '-' + str(l[i+1])
else :
outputString += ', ' + str(l[i+1])
i = i + 1
return outputString
感谢您的帮助和见解:)
我前段时间处理同样的问题。不幸的是我现在找不到代码。但是我记得,已经决定“8,9”比“8-9”更具人类可读性,所以我们只对3个和更多连续的整数使用倒数第一个符号。 – VPfB