这是我第三次尝试解决这个问题,作为一个全新的 python 用户,我真的不明白我的教授想说什么。
我需要在 python 中创建一个函数,它接受一个列表并将其“对半”,以便第一个和最后一个术语加在一起,第二个术语和倒数第二个术语等。如果我有一个空白列表,则输出应该为空,如果我有一个奇数列表,则不应将中间项添加到任何内容中。
(教授的原始提示:提示:创建一个函数,将列表作为输入,并生成一个“对折”列表,我的意思是输出中的第一项是输入的第一项和最后一项的总和;输出中的第二项是第二项和倒数第二项的总和,依此类推。因此,输入 [10,2,3,1] 将产生 [11,5],而输入 [10,2] ,3] 将产生 [13,2]。如果输入是空列表,则应返回空列表;如果输入是 [5],则输出应为 [5]。)
从其他人的帮助指导,这就是我到目前为止所拥有的
a = [10, 14, 21, 25, 52, 55]
def folded_list(input_list):
a = input_list
folded_list_output = [ a[i] + a[-(i + 1) ] for i in range( len(a) // 2)]
return folded_list_output
print(folded_list(a))
我认为这就是我的教授想要的。然而,他说: 你有一个代码片段,也许可以做你想做的事情(使用一个奇特的“列表理解”,这就是所谓的方括号结构,而不是 for 循环),你只需要把它放在一个函数定义并测试它是否有效。列表理解的使用并不是它不是函数的原因,而是因为 def function_name(arguments): 看不到任何线条。测试“极端情况”总是一个好主意:例如,当您提供空列表作为输入时,它是否会执行您想要的操作?对于具有奇数个元素的列表会发生什么?(提示:它没有做它应该做的事情,因为中间的元素完全被删除了。)
我真的不明白他想说什么——我以为我的
def folded_list(input_list):
a = input_list
folded_list_output = [ a[i] + a[-(i + 1) ] for i in range( len(a) // 2)]
return folded_list_output
正是他在论证部分寻找的内容。有谁明白他的意思以及我应该在代码中尝试修复什么?
慕妹3146593
慕虎7371278
潇潇雨雨
相关分类