需要替代reverse(),或者可能是另一个索引错误

时间:2014-07-09 20:23:41

标签: python python-2.7

这个程序正在经历一个基于Web的开发环境,实际上是我尝试从itertools得到我需要的东西,在这种情况下我实际上无法导入。我已经稍微改变了功能以满足命名要求,但它应该基本相同。我目前的问题是reverse()没有实现,所以我必须解决这个问题。我尝试使用for循环创建一个列表,该循环在此函数的内部和外部迭代。我也尝试了没有()的当前版本。现在我遇到一个错误,当我运行它时,我超出了索引的范围。我有什么替代方法可以逆转?

def combinations_of_options(options, opt_len):
    ''' yields all combinations of option in specific length
    '''
    pool = tuple(options)
    pool_len = len(pool)
    if opt_len > pool_len:
        return
    indices = range(opt_len)
    yield tuple(pool[index] for index in indices)
    while True:
        for index in (range(opt_len,-1,-1)): #this is the line that uses reversed
            if indices[index] != index + pool_len - opt_len:
                break
        else:
            return
        indices[index] += 1
        for dummy_index in range(index+1, opt_len):
            indices[dummy_index] = indices[dummy_index-1] + 1
        yield tuple(pool[index] for index in indices)

0 个答案:

没有答案