Python接收数组参数的反转函数代码结构正确性咨询
你的反转数组函数问题分析与修正
当前代码存在几个不符合需求的问题:
- 函数没有返回反转后的数组,只是循环打印了反转后的元素,所以调用
print(reverse_list(arr_num))会输出None,不满足“返回反转数组”的核心需求。 - 默认参数用
arr = []是Python的常见陷阱:如果多次调用不带参数的函数,会复用同一个空列表,后续调用会出现意外结果。 - 你直接用
arr[::-1]切片反转数组,这虽然能得到反转结果,但不符合题目要求的“通过循环”实现的逻辑。
修正后的代码
# 接收数组参数、通过循环返回反转数组的函数 def reverse_list(arr=None): # 处理默认参数,避免可变默认参数陷阱 if arr is None: arr = [] reversed_arr = [] # 从原数组最后一个元素开始循环遍历 for i in range(len(arr)-1, -1, -1): reversed_arr.append(arr[i]) # 返回反转后的数组 return reversed_arr arr_num = [1, 2, 3, 4, 5] # 获取反转数组并打印 print(reverse_list(arr_num)) # 输出: [5, 4, 3, 2, 1]
修正说明
- 把默认参数改为
arr=None,内部判断后初始化空列表,彻底避开可变默认参数的坑。 - 创建空列表
reversed_arr,通过range生成从原数组最后一个索引到0的序列,循环逐个添加元素,完全用循环实现反转逻辑。 - 用
return返回反转后的数组,调用函数就能直接拿到目标数组,符合需求。
内容的提问来源于stack exchange,提问作者user14823524
相关产品推荐
相关产品推荐

