【发布时间】:2022-01-17 08:28:54
【问题描述】:
我正在尝试构建 ABM(基于代理的模型)。这个函数应该建立一个包含我的周期数长度的列表,它被指定为 50。所以每个周期的男性数量。
目标是一个包含 50 个不同整数的列表,给出我在那个时期拥有的男性数量。 period =1 is given 的第一个值,这就是循环从 [1] 而不是 [0] 开始的原因。因此我初始化了men_list = [initial_no_of_men_per_clan]。现在我得到列表超出范围错误,我的men_list[t] 方程开始了。
如果我尝试打印t,我只会得到1 而不是[1, 2, 3, 4, 5, ...]。
这是我的代码:
for t in range(1, no_of_periods):
print(t)
men_list[t] = men_list[(t-1)] - dead_food_list[(t-1)] + pop_growth[(t-1)]
return men_list.append
那我当然会得到error: list indexout of range。
最后,我想让men_list 拥有与no_of_periods 相同数量的条目。比如,我想知道每个时期我有多少男人。所以代码应该建立男性列表。
【问题讨论】:
-
range()不包括最终值。所以range(1, 50)从 1 变为 49。 -
您的代码有一个 return 语句,但缺少函数的定义和签名(
def行)以及如何调用函数的示例。 -
您不能通过分配给索引来创建新的列表元素。使用
men_list.append()将新元素添加到列表末尾。 -
什么是 ABM?
-
men_list.append是一个函数,您需要使用参数调用它。return men_list.append返回函数,它不调用它。
标签: python list for-loop range