尝试接收元组列表但有些困惑
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
应该返回 tuples
的 list
,但您从这个结果中得到了 tuple
。这可以通过将行更改为来解决:
return find_best_shifts_rec(wordlist,s,start) + shifts
这会将 find_best_shifts_rec
返回的 tuples
的 list
连接到 shifts
中 tuples
的 list
。
我正忙于阅读麻省理工学院的一篇开放课件论文,但在某个问题上有点卡住了。
该问题涉及通过多次移动文本中的不同点来解决具有多级加密的凯撒密码。
我编写的代码解决了这些移位问题,并且 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
应该返回 tuples
的 list
,但您从这个结果中得到了 tuple
。这可以通过将行更改为来解决:
return find_best_shifts_rec(wordlist,s,start) + shifts
这会将 find_best_shifts_rec
返回的 tuples
的 list
连接到 shifts
中 tuples
的 list
。