python - python中的文本文件处理

标签 python list file

我有以下文件:

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/

相关文章:

python - 将变量添加到 Keras/TensorFlow CNN 密集层

iPhone异步文件加载?

python文件读取

python - 在python中验证用户输入的字符串

python - 关于网站停机更新的问题

python - 仅当元组中的数字相等时,如何根据字母顺序排列此列表中的元组?

Python - 如何仅将两个列表中的某些数字相乘

python - 遍历 python 列表

database - 存储文件的最佳方式

python - 根据 Pandas 数据框中的另一列获取两列的频率计数