python3用list实现栈
工作中遇到的需求,****代表标签数据别的信息:
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(): pass if __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_field list_temp.append(line) while(list_temp): list_info.append(list_temp.pop()) for item in list_info: print(item, end='') f.close() main()
最后一个标签的数据需要单独出栈,追加到最终的list里。