下面是一个示例代码,用于按方向对列表进行分组,并计算每个方向的数量和。
from collections import defaultdict
def group_and_sum_directions(lst):
direction_counts = defaultdict(int)
for item in lst:
direction, count = item[0], item[1]
direction_counts[direction] += count
return direction_counts
# 示例用法
lst = [('北', 2), ('南', 3), ('东', 1), ('南', 2), ('北', 1)]
result = group_and_sum_directions(lst)
print(result)
输出:
defaultdict(, {'北': 3, '南': 5, '东': 1})
上述代码使用了collections
模块中的defaultdict
类,它可以方便地处理字典中的缺失键。在这个示例中,我们使用defaultdict(int)
创建了一个默认值为0的字典direction_counts
。
然后,我们对输入的列表进行循环遍历,对每个方向和数量进行提取。我们通过direction_counts[direction] += count
语句,将每个方向的数量加到对应的键上。
最后,我们返回direction_counts
字典,其中包含了按方向分组并求和数量的结果。