gpt4 book ai didi

python - 组合元组列表

转载 作者:太空宇宙 更新时间:2023-11-04 05:18:02 25 4
gpt4 key购买 nike

我有 11 个文件,每个文件都包含学生,以及每个学生的分数。像这样:

文件 1:(一,三)(乙,​​ 4)(三,一)(四, 2)(英语,6)(F, 1)

文件 2:(一,8)(乙,​​ 3)(中, 4)(四, 2)等等,

我现在想制作一个计数器,它遍历所有 11 个文件并添加所有键的值并对其进行排序,这样我就会有这样的东西:

(A, 11) (B, 7) (E, 6) (C, 5) (D, 4) (F, 1)

我使用了下面的代码,但是这个代码没有合并来自不同文件的值:

import os                                                                   
import glob
from collections import defaultdict
from operator import itemgetter

for file in list(glob.glob('*.txt')):
scores = []
with open(file) as f:
for line in f:
name, score = line.split(' ')
score = int(score)
scores.append((name, score))


##this is the part where it is all about:
dict_1 = dict(scores)
all_keys = []
all_keys += set(dict_1.keys())
sum_list = [(k, dict_1.get(k, 0)) for k in all_keys]
print sorted(sum_list, key=itemgetter(1), reverse=True)

有没有一种方法可以在 Python 中将不同文件中的键和值添加在一起?

最佳答案

你应该使用 collections.Counter为了这。它将处理数据的组合,并允许您方便地将它们从最高值到最低值排序。另外,我认为您的文件读取 block 中存在轻微的缩进问题。

import glob
from collections import Counter

counter = Counter()

for filename in glob.glob('*.txt'):
with open(filename) as file:
for line in file:
name, score = line.split(' ')
counter[name] += int(score)

print counter.most_common()

关于python - 组合元组列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41211319/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com