Python 如何在新词典中添加对?[Dictionary]然后对相同键的值求和

Python 如何在新词典中添加对?[Dictionary]然后对相同键的值求和,python,dictionary,Python,Dictionary,在这部分代码中,我需要在字典中添加一些对。例如,afmLine[1]=0000000001(这是一个公司的id)和成本。然后,当在字典中有多次相同的afmLine编号时,我想计算这个afmLine编号的成本总和。用户输入是一个类似以下的txt文件,其中companyID是“ΑΜ”在我的档案里。公司收据是我所做的每一张收据的清单 公司ID:000000000000 比萨饼:23.15 6.30 意大利面:17 里拜:24080 公司ID:000000000001 汉堡:13.15 6.30 意大

在这部分代码中,我需要在字典中添加一些对。例如,
afmLine[1]=0000000001
(这是一个公司的id)和成本。然后,当在字典中有多次相同的afmLine编号时,我想计算这个afmLine编号的成本总和。用户输入是一个类似以下的txt文件,其中companyID是“ΑΜ”在我的档案里。公司收据是我所做的每一张收据的清单


公司ID:000000000000 比萨饼:23.15 6.30 意大利面:17

里拜:24080 公司ID:000000000001 汉堡:13.15 6.30 意大利面:17

里拜:24080
你的问题不是很清楚。但是,我认为这就是你想要的:

product=input('\nGive me the product name: ')
diction = {} # Initialize Dict
for receipt in company_receipts:
    for line in receipt.split('\n'):
        if product in line:
            seperateLine=line.split('\t')
            Cost=float(seperateLine[3])
            for line in receipt.split('\n'):
                if line.startswith("ΑΦΜ"):
                    afmLine=line.split(' ')
                    afm=afmLine[1]
                    if afm not in diction: # Check the item in the dictionary
                        diction[afm] = [] # Initialize the value with an empty list
                    diction[afm].append(cost) # Append the cost to the dictionary

# Calculating the total cost and printing it per item (i.e. id)
for item in diction:
    totalCost = 0
    for cost in diction[item]:
        totalCost += cost
    print(totalCost)

您需要初始化字典,然后将项目附加到字典中。最后,您可以再次循环浏览字典并计算每个id的总成本。

您的问题不是很清楚。但是,我认为这就是你想要的:

product=input('\nGive me the product name: ')
diction = {} # Initialize Dict
for receipt in company_receipts:
    for line in receipt.split('\n'):
        if product in line:
            seperateLine=line.split('\t')
            Cost=float(seperateLine[3])
            for line in receipt.split('\n'):
                if line.startswith("ΑΦΜ"):
                    afmLine=line.split(' ')
                    afm=afmLine[1]
                    if afm not in diction: # Check the item in the dictionary
                        diction[afm] = [] # Initialize the value with an empty list
                    diction[afm].append(cost) # Append the cost to the dictionary

# Calculating the total cost and printing it per item (i.e. id)
for item in diction:
    totalCost = 0
    for cost in diction[item]:
        totalCost += cost
    print(totalCost)

您需要初始化字典,然后将项目附加到字典中。最后,您可以再次循环浏览字典并计算每个id的总成本。

非常感谢您的回复。这对我帮助很大。 我已经有了这样的措辞 措辞={'ΑΜ':afm,'cost':cost}。
我想要的是每台afm的总成本,而不是总成本!也许在我的字典里,同一把钥匙有很多次,但代价不同。请用我的话记住afm一次

非常感谢您的回复。这对我帮助很大。 我已经有了这样的措辞 措辞={'ΑΜ':afm,'cost':cost}。
我想要的是每台afm的总成本,而不是总成本!也许在我的字典里,同一把钥匙有很多次,但代价不同。用我的话把afm保留一次

“添加对”什么?公司收据中有什么?
1
是公司id还是
0000000001
是公司id?请将您的代码编辑为一个,这意味着我应该能够将其粘贴到一个文件中,不添加任何其他内容,然后运行它并显示您得到的结果。所有这些for循环都运行一个txt文件,我需要将其添加到diction afmLine[1]成本变量公司id是0000000001或10位数字,但我不知道你的问题是,文本文件中有什么,是吗因此,请在代码中添加一个示例。把你自己放在一个阅读你的问题的人的位置上,试图理解这个问题是关于什么的——我当然不会“添加对”什么?公司收据中有什么?
1
是公司id还是
0000000001
是公司id?请将您的代码编辑为一个,这意味着我应该能够将其粘贴到一个文件中,不添加任何其他内容,然后运行它并显示您得到的结果。所有这些for循环都运行一个txt文件,我需要将其添加到diction afmLine[1]成本变量公司id是0000000001或10位数字,但我不知道你的问题是,文本文件中有什么,是吗因此,请在代码中添加一个示例。把你自己放在一个阅读你的问题的人的位置上,试图理解这个问题是关于什么的——我当然不知道。非常感谢你的回答。这对我帮助很大。我已经有了这样一个措辞={‘ΑΜ’:afm,‘cost’:cost}。我想要每个afm的总成本!用我的话来说,把afm保留一次你说的{‘成本’:afm是什么意思?afm的关键和成本价值是否在措辞中?您是否只想在字典中保留总数,而不保留单个成本?afm是关键,每个afm的成本都不同。但是,有多种afm,它们的成本是相同的。我想要这些的总和,并保留afm一次,我写的代码应该为您完成这项工作。在该代码中,afm是措辞的关键,值是成本列表。每次我们检查字典时,如果字典中有特定的afm,我们会将其成本添加到该afm的现有成本列表中;否则,我们会将键和值添加到字典中。好的,我同意,但我为什么会出现这样的错误:for cost in dictions[item]:TypeError:unhable type:“list”非常感谢您的回复。这对我帮助很大。我已经有了这样一个措辞={‘ΑΜ’:afm,‘cost’:cost}。我想要每个afm的总成本!用我的话来说,把afm保留一次你说的{‘成本’:afm是什么意思?afm的关键和成本价值是否在措辞中?您是否只想在字典中保留总数,而不保留单个成本?afm是关键,每个afm的成本都不同。但是,有多种afm,它们的成本是相同的。我想要这些的总和,并保留afm一次,我写的代码应该为您完成这项工作。在该代码中,afm是措辞的关键,值是成本列表。每次我们检查字典时,如果字典中有特定的afm,我们会将其成本添加到该afm的现有成本列表中;否则,我们会将键和值添加到字典中。好的,我同意,但为什么会出现此错误:for cost in dictions[item]:TypeError:unhable type:'list'