簡體   English   中英

如何解決 TypeError: 'NoneType' object is not iterable in pyhton

[英]how can I solve TypeError: 'NoneType' object is not iterable in pyhton

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

使用sort()對列表進行排序會更改原地列表,這意味着列表num_list會直接更改,而不是返回排序后的列表而原始列表保持不變。 您想使用內置的sorted function,這正是您想要的:

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[:]

這樣做有更多選擇,取決於您的需要。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM