工作中遇到的需求,****代表標簽數據別的信息:
D01 ******** 1 ********
D01 ******** 2 ********
D01 ******** 3 ********
D01 ******** 4 ********
D02 ******** 1 ********
D02 ******** 2 ********
......后面還有好多。
要變成:
D01 ******** 4 ********
D01 ******** 3 ********
D01 ******** 2 ********
D01 ******** 1 ********
D02 ******** 2 ********
D02 ******** 1 ********
......
相當于把標簽(紅色字體)是一樣的,進棧,再出棧,出棧的結果放進list里。
#!/usr/bin/env python3
#-*- coding:utf-8 -*-def main():passif __name__ == "__main__":f = open("info", 'r')list_info = []list_temp = []last_field = "D01"for line in f:new_field = line.split()[0]if new_field == last_field:list_temp.append(line)else:while(list_temp):list_info.append(list_temp.pop())last_field = new_fieldlist_temp.append(line)while(list_temp):list_info.append(list_temp.pop())for item in list_info:print(item, end='')f.close()main()
最后一個標簽的數據需要單獨出棧,追加到最終的list里。