程序推理,python函数



程序推理要求我们找到函数的输入,以便它输出特定的结果。功能是:

def func1(stuff, more_stuff=None):
data = []
for i, thing in enumerate(stuff):
if thing >= 0 or i < 2:
data.append(thing + i)
print(len(stuff))
if more_stuff is not None:
data += more_stuff
print(data)

预期输出为:

4
[5, 3, 1, 5, -3]

我能得到的最接近的是:

4
[5, 3, 2, 5, -3]

以func1([5,2,02],[-3](作为输入

我在尝试获取1时遇到了问题,我只是想知道你如何/为什么可以获取1,就好像它小于0一样,即-1作为该索引的值,那么"thing"就是<0和i=2,因此它跳过该值/索引,输出将为:

4
[5, 3, 5, -3]

这里的关键是stuff的长度必须是4,而不是第一个for循环之后的data的长度。如果您试图使用stuff来填充data,那么您会遇到数据[2]永远不可能为1的问题,这是绝对正确的。

要解决此问题,请在此之前将stuff截断,并使用more_stuff附加所需的值。

你要找的输入是:

>>>func1([5, 2, -1, -1], [1, 5, -3])
4
[5, 3, 1, 5, -3] 

最新更新