如何总结类似群体的数字?

Mac*_*ers 1 python

我有两个问题.我正在尝试编写一个接受命令行参数的脚本,我看到我可以使用以下命令启动脚本:

#!/bin/env python
Run Code Online (Sandbox Code Playgroud)

要么

exec python -x "$0" "$@"
Run Code Online (Sandbox Code Playgroud)

这两者有什么区别?

第二个问题是脚本.我有一个像这样的输入数据集:

group_a 5
group_a 7
group_c 6
group_a 8
group_b 8
group_b 4
group_c 7
group_a 8
....
....
Run Code Online (Sandbox Code Playgroud)

如何将所有类似项目组合在一起并总结如下数字:

group_a 28
group_b 12
group_c 13
Run Code Online (Sandbox Code Playgroud)

Kat*_*iel 5

这应该是两个单独的问题.

1)这两种方式是等价的.shebang只是将程序标记为由Python执行,因此您在运行它时不必指定它.

2)

import collections
groups = collections.defaultdict(int)

for line in data_set:
    group, value = line.split()
    groups[group] += int(value)
Run Code Online (Sandbox Code Playgroud)

A collections.defaultdict是一个看起来像字典的数据结构,但是如果你查找一个不包含它的值,它会自动使用默认值创建它.因此,这是生成组字典的简洁方式:即时值.