Python嵌套for循环实现两整数列表相加取不到最后索引问题求助
问题原因
- 函数调用顺序错误:Python是逐行解释执行的,你把
predict()调用写在函数定义之前,运行时会直接抛出函数未定义的报错。
- 函数调用顺序错误:Python是逐行解释执行的,你把
- 传参顺序颠倒:函数定义时第一个参数
cases是原始数值列表,第二个predicted_growths是增长值列表,但你调用时先传了长度为3的增长值列表、后传了长度为4的原始数值列表,导致内层循环只走3次,漏掉了原始列表的最后一个元素1000。
- 传参顺序颠倒:函数定义时第一个参数
- 循环逻辑冗余:外层循环仅需要遍历所有增长值,不需要额外加1;内层直接遍历原始数值列表逐个相加即可,不需要用insert方法额外补充最后一个元素。
- 列表取最后元素可以直接用负索引:
列表名[-1]就能直接拿到列表的最后一个元素,语法本身已经支持,不需要借助insert方法绕路实现。
- 列表取最后元素可以直接用负索引:
修正后代码
def predict(cases, predicted_growths): # 外层遍历每个增长值 for growth in predicted_growths: new_cases = [] # 内层遍历每个原始数值,加上当前增长值 for num in cases: new_cases.append(num + growth) print(new_cases) # 先定义函数,再调用,参数顺序对应原始数值、增长值 num_cases = [500, 800, 900, 1000] num_predic = [10, 20, 30] predict(num_cases, num_predic)
运行输出
[510, 810, 910, 1010] [520, 820, 920, 1020] [530, 830, 930, 1030]
内容的提问来源于stack exchange,提问作者Jake Z
相关产品推荐
相关产品推荐

