我有一个看起来像这样的文本文件:
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)
然而前缀很长,有时我会收到错误。我想我应该使用一个生成器,但无法弄清楚语法,有什么帮助吗?
答案 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])