在Jython中按长度排序URL列表

时间:2008-10-30 10:02:52

标签: url list sorting jython

3 个答案:

答案 0 :(得分:3)

使用排序函数按长度排序:

urls.sort(lambda a, b: cmp(len(a), len(b)))

对于性能,有些人可能更喜欢decorate-sort-undecorate模式:

urllengths= [(len(url), url) for url in urls]
urllengths.sort()
urls= [url for (l, url) in urllengths]

或者作为一个单行:

urls= zip(*sorted((len(url), url) for url in urls))[1]

答案 1 :(得分:1)

直到jython赶上 python 2.4 ,你不能将 key 参数用于 list.sort()

mylist.sort(key=len)

所以,就像过去一样,我们有decorate-sort-undecorate成语。要按项目长度对mylist进行排序,我们会生成decorated_list(len(item),item)元组,对其进行排序,最后将项目删除:

decorated_list = zip(map(len, mylist), mylist)
decorated_list.sort()
sorted_list = [i[1] for i in decorated_list]

答案 2 :(得分:0)

不排序他们会照顾这个吗?