python - 程序推理,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,0,2], [-3]) 作为输入
我在尝试获取 1 时遇到了麻烦,我只是想知道如何/为什么可以得到 1,就好像它小于 0 即 -1 作为该索引的值,然后“事物”< 0 并且i = 2 所以它会跳过该值/索引,输出将是:
4
[5, 3, 5, -3]
解决方案
这里的关键是长度stuff
必须是 4,而不是data
第一个 for 循环之后的长度。如果您尝试使用stuff
to fill ,您会遇到 data[2] 永远不能为 1 的问题,这是绝对正确的data
。
要解决此问题,请在此stuff
之前切断并使用more_stuff
附加您需要的值。
即您正在寻找的输入是:
>>>func1([5, 2, -1, -1], [1, 5, -3])
4
[5, 3, 1, 5, -3]
推荐阅读
- networking - 使用 NetworkManager 设置 OpenThread OTBR 无法设置 AP;bind9.service 无法运行
- python - 我想我在我的 Mac 上搞砸了我的 Python 环境
- r - 将分层 cox 模型的图与 R 中的其他模型进行比较
- python - 品脱:用“as_ratio=False”指定缩写单位
- rx-java - RxJava:通过 `debouncing()` 保护现有 API 方法免受用户过多的异步调用
- javascript - jquery-ui 对话框中的 ckeditor - Internet Explorer 11 工具下拉菜单问题
- python - 我们可以根据装饰器调用函数吗?
- concurrency - 我们什么时候应该选择锁定而不是无锁数据结构”
- ios - TableView重新加载前如何设置模型数据
- java - 在 Pramp 中无法识别 System.out.println?