Python自定义冒泡排序函数时出现AttributeError错误的原因求助
解决冒泡排序代码的AttributeError问题
嘿,我来帮你拆解这个问题!你遇到的AttributeError: 'list' object has no attribute 'kono'错误,原因其实很简单:
你定义的kono()是一个独立的自定义函数,并不是Python列表(list)自带的方法。Python的列表对象没有名为kono的属性或方法,所以当你尝试用l.kono()这种“列表调用方法”的形式去执行它时,解释器就会报错说找不到这个属性。
修正后的代码方案
根据你的需求,有两种简单的修正方式:
方式1:直接调用自定义函数(基于原代码修改)
你的函数已经在操作全局变量l,所以直接调用函数即可,不需要通过列表对象调用:
l = [1,4,7,9,0] def kono(): n = len(l) for i in range(n): for j in range(n-i-1): if l[j] > l[j+1]: l[j], l[j+1] = l[j+1], l[j] # 直接调用函数,不需要用l.kono() kono() # 此时l已经被排序,直接打印即可 print(l)
方式2:让函数接收列表参数(更规范通用)
这种方式不依赖全局变量,函数可以处理任意列表,还能返回排序后的结果,是更推荐的写法:
def kono(arr): n = len(arr) # 复制原列表,避免修改原始数据(可选,根据需求调整) sorted_arr = arr.copy() for i in range(n): for j in range(n-i-1): if sorted_arr[j] > sorted_arr[j+1]: sorted_arr[j], sorted_arr[j+1] = sorted_arr[j+1], sorted_arr[j] return sorted_arr l = [1,4,7,9,0] b = kono(l) print(b)
这样修改后,代码就能正常执行并完成冒泡排序啦~
内容的提问来源于stack exchange,提问作者Aradhya_009
相关产品推荐
相关产品推荐

