Skip to main content
 首页 » 编程设计

python之如何根据特定标准对列表进行排序

2025年05月04日18wuhuacong

例如我有一个列表

list = [['word1', 0.234], ['word2', 0.2], ['word3', 0.5], ['word4', 0,67]] 

我想按重要性排序。重要性表示值与 0.5 的距离有多远。排序后的列表应该是:

list = [['word2', 0.2], ['word1', 0.234], ['word4', 0.67], ['word3', 0,5]] 

首先,我通过编写基于冒泡排序的简单函数解决了这个问题,但速度很慢。

def most_interesting_words(seznam): 
"""sort list i.e. [['word', spamicity], ...], first tokens whose value was furthest from the neutral value of  
for i in range(len(seznam)): 
    for j in range(len(seznam)): 
        #if dist_from_05(seznam[i][1]) > dist_from_05(seznam[j][1]): 
        if abs(0.5 - seznam[i][1]) > abs(0.5 - seznam[j][1]): 
            tmp = seznam[i] 
            seznam[i] = seznam[j] 
            seznam[j] = tmp 
return seznam 

如何用 sorted() 函数解决?

请您参考如下方法:

要按距 0.5 的距离排序,您可以使用以下 sorted() 函数:

my_list = [['word1', 0.234], ['word2', 0.2], ['word3', 0.5], ['word4', 0.67]] 
print(sorted(my_list, key=lambda x: abs(0.5 - x[1]), reverse=True)) 

这将为您提供以下输出:

[['word2', 0.2], ['word1', 0.234], ['word4', 0.67], ['word3', 0.5]]