【发布时间】:2013-12-29 03:37:05
【问题描述】:
我已经在这个程序上工作了一段时间,但不知道如何从第二个列表中的内容中对我的一个列表进行排序。对于这个程序,我有一个单词列表,还有一个单词在我打开的文件中出现的次数的列表。我需要根据单词的频率降序对单词列表进行排序。我必须根据分配编写一个单独的函数来执行此操作。我有一个给类使用的函数,但它只对一个列表进行排序。这是我拥有且需要修改的功能:
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", "hat", "cat", "frog"]
我应该如何修改我拥有的函数,以便使用频率列表中的相应值对mylist 进行排序?
我正在使用 Python 3.3
【问题讨论】:
-
从 2 个列表开始。每当您交换时,请记住交换两个列表中的相同位置。此外,pythonic 方法是压缩列表,使用其中一个元素对其进行排序,然后将其他项目作为结果。
标签: python list sorting python-3.x