2024-05-16 03:24:09 发布
网友
我试图根据特定的列按节对文本文件中的数据进行排序,但没有得到任何解决方案。数据格式如下:
Section-1: 0 2 5 3 3 0 0 5 3 5 Section-2: 1 4 3 2 1 3 0 11 Section-3: 12 8 0 6 3 0 12 0 0 3 ....
现在我想对每个部分的第1列应用sort,我已经尝试了很多,但没有得到任何解决方案。如果有人帮助我,我会非常感激的
提前谢谢
可以使用正则表达式查找文本中的块:
import re with open(your_file, r) as f: blocks=re.findall(r'^(Section.*)\n([\s\S]*?(?=^Section|\Z))', f.read(), flags=re.M)
Demo of the regex
然后对块进行排序并打印:
for h,s in blocks: print h print '\n'.join(sorted(s.splitlines(), key=lambda l:tuple(map(int,l.split()))))
假设您希望按第一个数字和第二个数字排序,以便1 4位于1 3之后。如果只想按第一个数字排序,而不想根据第二个数字更改行的顺序,则可以执行以下操作:
1 4
1 3
for h,s in blocks: print h print '\n'.join(sorted(s.splitlines(), key=lambda l:int(l.split()[0])))
可以使用正则表达式查找文本中的块:
Demo of the regex
然后对块进行排序并打印:
假设您希望按第一个数字和第二个数字排序,以便
1 4
位于1 3
之后。如果只想按第一个数字排序,而不想根据第二个数字更改行的顺序,则可以执行以下操作:相关问题 更多 >
编程相关推荐