按空格数排序列表

时间:2014-03-28 16:24:14

标签: python list sorting

我有一个看起来像这样的文本文件:

prefix-56678     4677878     233454
3445567     56566767
4554578    prefix-787856
345456    546    7867856   445456

我想按行数“\ t”重新排序。 我做的是:

list_of_lines=text.splitlines()
list_of_lines.sort(key=len, reverse=True) 

然而前缀很长,有时我会收到错误。我想我应该使用一个生成器,但无法弄清楚语法,有什么帮助吗?

3 个答案:

答案 0 :(得分:4)

要按标签计数对行进行排序,请计算标签:

list_of_lines.sort(key=lambda l: l.count('\t'), reverse=True)

len()会为您提供该行的总长度。

答案 1 :(得分:0)

list_of_lines=text.splitlines()
list_of_lines.sort(key=lambda(x):len(x.split("\t"))-1, reverse=True)

答案 2 :(得分:-2)

下面: list_of_lines=text.splitlines() for elmntindx in range(len(list_of_lines)): list_of_lines[elmntindx].split("\t") list_of_lines.sort(key=len, reverse=True) 编辑:忘记在第3行分配。这是修复程序,其中包含一个将字符串组合回来的附加部分: list_of_lines=text.splitlines() for elmntindx in range(len(list_of_lines)): list_of_lines[elmntindx]=list_of_lines[elmntindx].split("\t") list_of_lines.sort(key=len, reverse=True) for a in range(len(list_of_lines)): list_of_lines[a]="\t".join(list_of_lines[a])