You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 13:37:46