程序推理要求我们找到函数的输入,以便它输出特定的结果。功能是:
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]