从.txt fi更新密钥的字典值

2024-09-28 21:53:42 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我在txt文件中创建了一个字典“项目经理.txt“关键是球员,价值是他们的罚分。我知道字典键必须是唯一的,所以我如何更新键的值并将其添加到当前值,因为该键在txt文件中存在不止一次。在

    "PM.txt"
    Neil,2
    Paul,5
    Neil,10
    Santos,2
    Neil,2
    Santos,10
    Paul,2
    Alex,2

到目前为止,我得到的是:

{'Alex':2,'桑托斯':10,'保罗':2,'尼尔':2}

^{pr2}$

但如何创建函数或助手以使其返回:

{'Alex':2,'桑托斯':12,'保罗':7,'尼尔':14}


Tags: 文件函数txt字典关键价值球员项目经理
3条回答

在for循环中,而不是dict[player]=分钟:

if player not in dict:
    dict[player] = 0

dict[player] += minutes

同时,也不是:

        minutes = x[1]
        c = len(minutes)-2
        minutes = minutes[0:c]

您可以:

^{pr2}$

首先将您的minute转换为int

minutes = int(x[1])

然后将其添加到字典中:

^{pr2}$

几个标准库使这个问题变得简单明了。如果一个defaultdict还不存在其默认类型的键,那么即使该键还不存在,D[key] += value也可以使用它。csv模块自动解析.csv文件。默认分隔符是逗号。还要确保不要使用dict作为变量名。它重写dict类型。在

from collections import defaultdict
import csv

def pm_dict(filename):
    D = defaultdict(int)
    with open(filename, 'r', newline='') as f:
        r = csv.reader(f)
        for key,value in r:
            D[key] += int(value)
    return dict(D) # converts back to a standard dict, but not required.

print(pm_dict('PM.txt'))

输出:

{'Neil': 14, 'Paul': 7, 'Alex': 2, 'Santos': 12}

值作为数字更有意义,但如果您希望像您的示例中那样使用值字符串,则函数的最后一行可以是下面的行,以将值转换回字符串。这是一本字典理解。在

^{pr2}$

相关问题 更多 >