如何解决TypeError:Pyton中的“NoneType”对象不可编辑

2024-05-02 02:13:51 发布

您现在位置:Python中文网/ 问答频道 /正文

import pyfiglet
pyfiglet.print_figlet("Niko CyMax",'puffy')

num_list=[ (1,2) , (3,1000) , (5,6) , (9,10) , (8,500) , (70,400) ]

num_list_manual_sort=num_list.sort()
num_list_pro_sort=num_list.sort(key = lambda x: x[1])

for i in num_list_manual_sort:
    print(i)

for i in num_list_pro_sort:
    print(i)

错误是:

TypeError: 'NoneType' object is not iterable

Tags: keyinimportformanualsortnumlist
2条回答

使用sort()对列表进行排序会更改列表的位置,这意味着直接更改列表num_list,而不是返回已排序的列表,并保持原始列表不变。您希望使用内置的sorted函数,它完全满足您的需要:

import pyfiglet
pyfiglet.print_figlet("Niko CyMax",'puffy')

num_list=[(1, 2), (3, 1000), (5, 6), (9, 10), (8, 500), (70, 400)]

num_list_manual_sort = sorted(num_list)
num_list_pro_sort = sorted(num_list, key=lambda x: x[1])

for i in num_list_manual_sort:
    print(i)

for i in num_list_pro_sort:
    print(i)

使用sort方法对列表进行排序时,会更改列表本身,并返回None

num_list_manual_sort=num_list.sort()
num_list_pro_sort=num_list.sort(key = lambda x: x[1])

num_list_manual_sortnum_list_pro_sort都将保持None。 如果要取回列表,可以使用以下方式替换:

num_list.sort()
num_list_manual_sort = num_list[:]
num_list.sort(key = lambda x: x[1])
num_list_pro_sort = num_list[:]

根据您的需要,有更多的选择

相关问题 更多 >