尝试接收元组列表但有些困惑

Attempting to receive a list of tuples but somewhat confused

我正忙于阅读麻省理工学院的一篇开放课件论文,但在某个问题上有点卡住了。

该问题涉及通过多次移动文本中的不同点来解决具有多级加密的凯撒密码。

我编写的代码解决了这些移位问题,并且 returns 需要给出的位置和移位编号才能破译凯撒移位文本。

该函数应该return 一个包含班次开始位置和班次编号的元组列表。目前我得到的是以下内容:

(([12, 11], [3, 9]), [0, 21])

如有任何帮助,我们将不胜感激。

def find_best_shifts_rec(wordlist, text, start)

    for shift in xrange(27):
        ## Begin shifting the text along the segments you would like to see shifted while holding constant the text that is not to change.
        s = text[:start] + apply_shift(text[start:],shift)
        print s
        letter_position = start
        for letter in s[start:]:
            if letter == " " and is_word(wordlist,s[start:letter_position]):
                start = letter_position + 1
            letter_position += 1
        if is_word(wordlist,s[start:len(s)]):
            print "Base Case"
            shifts += (begin,shift)
            return shifts
        elif start != begin:
            print "Recursion"
            shifts += (begin,shift)
            return find_best_shifts_rec(wordlist,s,start), shifts

问题似乎出在你代码的最后一行

return find_best_shifts_rec(wordlist,s,start), shifts

问题是 find_best_shifts_rec 应该返回 tupleslist,但您从这个结果中得到了 tuple。这可以通过将行更改为来解决:

return find_best_shifts_rec(wordlist,s,start) + shifts

这会将 find_best_shifts_rec 返回的 tupleslist 连接到 shiftstupleslist