Python从另一个列表中排序一个列表
发布时间:2020-12-20 11:32:00 所属栏目:Python 来源:网络整理
导读:参见英文答案 Sorting list based on values from another list?????????????????????????????????????14个 我已经在这个程序上工作了一段时间,无法弄清楚如何从第二个列表中的内容对我的一个列表进行排序.对于这个程序,我有一个单词列表,我还有一个列表,列
参见英文答案 >
Sorting list based on values from another list?????????????????????????????????????14个
我已经在这个程序上工作了一段时间,无法弄清楚如何从第二个列表中的内容对我的一个列表进行排序.对于这个程序,我有一个单词列表,我还有一个列表,列出了我打开的文件中单词的次数.我需要根据单词的频率按降序对单词列表进行排序.我必须根据作业编写一个单独的函数来执行此操作.我有一个给要使用的类的函数,但它只排序一个列表.这是我有的功能,需要修改: def selectionsort(mylist): for i in range(len(mylist)): max_i = i for j in range( i + 1,len(mylist) ): if mylist[j] > mylist[max_i]: max_i = j temp = mylist[max_i] mylist[max_i] = mylist[i] mylist[i] = temp 我目前有两个列表如下所示: mylist = ["the","cat","hat","frog"] frequency = [4,1,2,1] 4是“the”的频率,1是“cat”的频率,依此类推. 我的目标是让mylist像这样排序: mylist = ["the","frog"] 我应该如何修改我的功能,以便使用频率列表中的相应值对mylist进行排序? 我使用的是Python 3.3 解决方法
干得好!使用排序和zip:
sortedlist = [i[0] for i in sorted(zip(mylist,frequency),key=lambda l: l[1],reverse=True)] 这是一个小小的演示: >>> mylist ['the','cat','hat','frog'] >>> frequency = [4,3,2] >>> sortedlist = [i[0] for i in sorted(zip(mylist,reverse=True)] >>> sortedlist ['the','frog','cat'] 希望这可以帮助! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |