Skip to main content
 首页 » 编程设计

Python,如何使用文件中的行作为字典中的键,使用下一行作为值

2025年05月04日12txw1958

我有这样一个文件:

   Ben 
   0 1 5 2 0 1 0 1 
   Tim 
   3 2 1 5 4 0 0 1 

我想制作一本如下所示的字典:

    {Ben: 0 1 5 2 0 1 0 1, Tim : 3 2 1 5 4 0 0 1} 

所以我在想:

   for line in file: 
       dict[line] = line + 1 

但是你不能像那样遍历文件,所以我该怎么做 做这个?

请您参考如下方法:

这可能是您想要的:

dict_data = {} 
with open('data.txt') as f: 
    for key in f: 
        dict_data[key.strip()] = next(f).split() 
 
print dict_data 

输出:

{'Tim': ['3', '2', '1', '5', '4', '0', '0', '1'], 'Ben': ['0', '1', '5', '2', '0', '1', '0', '1']}

讨论

  • for 循环假定每一行都是一个键,我们将读取循环体中的下一行
  • key.strip() 将 'Tim\n' 转换为 'Tim'
  • f.next() 读取并返回下一行——关键行之后的行
  • f.next().split() 因此将该行拆分为一个列表
  • dict_data[key.strip()] = ... 会做类似的事情:dict_data['Tim'] = [ ... ]

更新

  • 感谢 Blckknght 的指点。我将 f.next() 更改为 next(f)

更新2

如果你想把列表变成一个整数列表而不是字符串,那么代替:

        dict_data[key.strip()] = next(f).split() 

这样做:

        dict_data[key.strip()] = [int(i) for i in next(f).split()]