Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python词频排序_Python_Sorting_Frequency_Word - Fatal编程技术网

Python词频排序

Python词频排序,python,sorting,frequency,word,Python,Sorting,Frequency,Word,我被要求写一个程序来计算文本文件中的单词。我能够数一数单词及其频率,并将它们存储在字典中。现在,我必须将数据写入另一个文本文件中,但频率顺序是递减的。如果两个单词的频率相同,则必须按字母顺序将该单词写入输出文本文件 我将单词及其频率存储到一个元组中,并对文件中的所有单词执行相同的操作。包含元组的列表,元组包含(频率、单词) 我使用.sort(reverse=True)对元组进行排序,但它也按字母顺序的相反顺序对相同频率的单词进行排序 例:如果我的清单是: L = [(4,"hello"),(2,

我被要求写一个程序来计算文本文件中的单词。我能够数一数单词及其频率,并将它们存储在字典中。现在,我必须将数据写入另一个文本文件中,但频率顺序是递减的。如果两个单词的频率相同,则必须按字母顺序将该单词写入输出文本文件

我将单词及其频率存储到一个元组中,并对文件中的所有单词执行相同的操作。包含元组的列表,元组包含(频率、单词)

我使用
.sort(reverse=True)
对元组进行排序,但它也按字母顺序的相反顺序对相同频率的单词进行排序

例:如果我的清单是:

L = [(4,"hello"),(2,"zebra"),(2,"apple"),(1,"a"),(1,"the"),(1,"bike")]
输出应为:

hello          4  
apple          2  
zebra          2  
a              1  
bike           1  
the            1  

这里有一个解决问题的3号班轮

L = [(4,"hello"),(2,"zebra"),(2,"apple"),(1,"a"),(1,"the"),(1,"bike")]
L = sorted(L, key=lambda x: (-x[0],x[1]))
for i,j in L:
    print j, i
输出

hello 4
apple 2
zebra 2
a 1
bike 1
the 1

其思想是,您希望将元组的第一个组件按照与第二个组件不同的顺序进行排序。考虑到这一点的一个简单转换是将排序键设置为(-x[0],x[1])。

这里有一个3行程序可以解决这个问题

L = [(4,"hello"),(2,"zebra"),(2,"apple"),(1,"a"),(1,"the"),(1,"bike")]
L = sorted(L, key=lambda x: (-x[0],x[1]))
for i,j in L:
    print j, i
输出

hello 4
apple 2
zebra 2
a 1
bike 1
the 1
其思想是,您希望将元组的第一个组件按照与第二个组件不同的顺序进行排序。考虑到这一点的一个简单转换是将排序键设置为(-x[0],x[1])