我有一个大的制表符分隔文本文件,例如,将其命名为john_file:


  1约翰1 23 54 54
  2约翰2 34 45 66
  3约翰3 35 43 54
  4约翰2 34 54 78
  
  5约翰1 12 34 65
  6约翰3 34 55 66


将文件根据名称(john1、2或3)解析为3个列表的快速方法是什么?

fh=open('john_file.txt','r').readlines()
john1_list=[]
for i in fh:
 if i.split('\t')[1] == "john1":
  john1_list.append(i)


提前致谢

最佳答案

from collections import defaultdict

d = defaultdict(list)

with open('john_file.txt') as f:
    for line in f:
        fields = line.split('\t')
        d[fields[1]].append(line)


然后,各个列表位于d['john1']d['john2']等中

10-06 07:30