扩展一个范围,例如:“ 1-3,6,8-10”到[1,2,3,6,8,9,10]


问题内容

我正在尝试向程序添加一个选项,以允许用户选择他要执行的程序步骤。

我希望能够解析like"1-3,6,8-10"和get 的字符串[1, 2, 3, 6, 8, 9, 10]

您知道Python中正在执行的操作吗?


问题答案:

该功能可以完成您所要求的。它假定不使用负数,否则需要进行一些更改以支持这种情况。

def mixrange(s):
    r = []
    for i in s.split(','):
        if '-' not in i:
            r.append(int(i))
        else:
            l,h = map(int, i.split('-'))
            r+= range(l,h+1)
    return r


print mixrange('1-3,6,8-10')