Python 如何在文本文件中查找行上的数字之和?

Python 如何在文本文件中查找行上的数字之和?,python,dictionary,Python,Dictionary,我目前正在尝试使用字典来累积线上所有数字的总和。每行都有一个ID号,它是每行的第一个编号 它能够识别每一行,但是它找不到和,它使用每一行中的第二个值作为和 dict = {} with open ("id_data.txt") as input_file: for line in input_file: line = line.split() ID = int (line[0]) Sum = int (line[1]) if ID

我目前正在尝试使用字典来累积线上所有数字的总和。每行都有一个ID号,它是每行的第一个编号

它能够识别每一行,但是它找不到和,它使用每一行中的第二个值作为和

dict = {}
with open ("id_data.txt") as input_file:
  for line in input_file:
    line = line.split()
    ID = int (line[0])
    Sum = int (line[1])
    
    if ID in dict:
        dict [ID] += Sum 
    else:
        dict [ID] = Sum 
output_file = open ("id_SUMS.txt", "w")
for ID in sorted (dict):     
   output_file.write ("Line ID : " + str (ID))
   output_file.write(", Sum : " + str (dict[ID]))
   output_file.write ("\n")
output_file.close ()
print("file has been updated")
如果有人能帮助我确定我的程序哪里出了问题,以及如何修复它,以及在哪里找到特定行上的数字总和,我将不胜感激。

总和应该是:

Sum = sum(int(i) for i in line[1:])
总额应为:

Sum = sum(int(i) for i in line[1:])

无需创建列表,
sum
将使用生成器表达式
sum(int(i)表示第[1:]行中的i)
并且不需要对该行进行切片(即复制):
lin=iter(line.split());下一位(林),;s=sum(林中i的int(i)
@Pynchia切片真的会创建副本吗?你能告诉我在哪里可以读到它吗?>可以使用dict.copy()制作字典的浅拷贝,并通过分配整个列表的一部分来制作列表的浅拷贝,例如,copied_list=original_list[:]。从。如果你搜索的话,还有很多其他的结果。使用对象的ID进行实验切片是一个新对象,它是一个浅拷贝无需创建列表,
sum
将使用一个生成器表达式
sum(int(i)表示第[1:]行中的i)
并且不需要对该行进行切片(即复制):
lin=iter(line.split());下一位(林),;s=sum(林中i的int(i)
@Pynchia切片真的会创建副本吗?你能告诉我在哪里可以读到它吗?>可以使用dict.copy()制作字典的浅拷贝,并通过分配整个列表的一部分来制作列表的浅拷贝,例如,copied_list=original_list[:]。从。如果你搜索的话,还有很多其他的结果。用对象的ID进行实验切片是一个新对象,它是一个浅拷贝,您如何知道它不工作?打印
dict.get([ID,0)时
条件前后是否发生变化?如果您现在正在使用IDE,那么现在正是学习其调试功能的好时机,例如逐步执行、设置断点和检查值。或者您可以花一点时间熟悉内置的。此外,在程序的关键点打印内容也可以帮助您跟踪正在发生或未发生的情况。1.请避免使用
dict
作为变量名称。2.避免检查字典中的键只是为了增加其值:使用而不是打印
dict.get([ID,0])时,您如何知道它不起作用
条件前后是否发生变化?如果您现在正在使用IDE,那么现在正是学习其调试功能的好时机,例如逐步执行、设置断点和检查值。或者您可以花一点时间熟悉内置的。此外,在程序的关键点打印内容也可以帮助您跟踪发生了什么或没有发生什么。1.请不要使用
dict
作为变量名。2.避免检查字典中的键只是为了增加其值:改用