我有以下文件:
1 real madrid,barcelona,chelsea,arsenal,cska
2 chelsea,arsenal,milan,napoli,juventus
5 bayern,dortmund,celtic,napoli
7 cska,psg,arsenal,atalanta
9 atletic bilbao,las palmas,milan,barcelona
我想用这个输出生成一个新文件(我有节点,现在我有每个团队,在第二列中我有以这个团队为属性的节点):
real madrid 1
barcelona 1,9
chelsea 1,2
arsenal 1,2,7
cska 1,7
milan 2,9
etc...
首先我打开文件并将每一列保存到列表中:
file1 = open("myfile.txt","r")
lines1 = file1.readlines()
nodes1 = []
attrs1 = []
for x in lines1:
x = x.strip()
x = x.split('\t')
nodes1.append(x[0])
attrs1.append(x[1].split(','))
但现在如何检查属性和节点以生成输出文件?
最佳答案
更好的是,在读取文件时创建字典:
line_map = {}
for x in lines1:
(row_no, teams) = x.strip().split("\t")
for i in teams.split(","):
if not i in line_map:
line_map[i] = set()
line_map[i].add(row_no)
现在 line_map 包含团队名称到包含它的线路列表的映射。您可以轻松打印:
for (k, v) in line_map.items():
print("%s: %s" % (k, ",".join(v)))
如果我没记错的话......
编辑:append 应该被添加。
关于python - python中的文本文件处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49694848/