【问题标题】:python3 'Nontype object' is not subscriptablepython3 'Nonetype object' 不可下标
【发布时间】:2016-08-01 02:45:55
【问题描述】:

我该如何解决这个问题?

def median(lst):
    lst_s=lst.sort()
    k=len(lst)

    if k%2==0:
        return ((lst_s[k/2]+lst_s[k/2-1])/2)
    elif k%2==1:
        return (lst_s[k/2-1/2])

res = median([1,2,3,7,6,5])
print('median:',res)

当我运行它时,它会说

Traceback (most recent call last):
  File "E:\lab5_p4_2015123176.py", line 13, in <module>
    res = median([1,2,3,7,6,5])
  File "E:\lab5_p4_2015123176.py", line 7, in median
    return ((lst_s[k/2]+lst_s[k/2-1])/2)
TypeError: 'NoneType' object is not subscriptable

【问题讨论】:

标签: list python-3.x return nonetype


【解决方案1】:

问题是list.sort() 对列表中的项目进行排序,因此返回None。在您的median 函数中,如果您不想修改原始列表中的元素顺序,则需要将lst_s = lst.sort() 替换为lst_s = sorted(lst)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-06
    • 2013-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-10
    相关资源
    最近更新 更多