dict列表中键的Python计数和平均值

dict列表中键的Python计数和平均值,python,Python,我有个人id和房间id列的文件。我把所有的文件都读入字典 people_id room_id 1 8 2 32 3 8 4 47 5 12 6 8 和代码 report_keys = ['people_id', 'room_id'] report = [] with open("file.txt") as f: for line in f: line = line.strip().split('\t') d = dict(zip(

我有个人id和房间id列的文件。我把所有的文件都读入字典

people_id room_id
1   8
2   32
3   8
4   47
5   12
6   8
和代码

report_keys = ['people_id', 'room_id']
report = []
with open("file.txt") as f:
    for line in f:
        line = line.strip().split('\t')
        d = dict(zip(report_keys, line))
        report.append(d)
我想计算每个房间的人数。对于8号房间,这个房间的人数=3,房间的平均人数

输出:

Room_id 8 = 3 people
Room_id 32 = 1 people
Room_id 47 = 1 people
Room_id 12 = 1 people
平均入住一个房间的人数

我试着这么做

for key, value in report:
    print(key, len([item for item in value if item]))
但是我的代码只打印相同的值

使用熊猫怎么样:


我想你可以改变你读取文件的方式

report = {}
with open("file.txt") as f:
    for line in f:
        line = line.strip().split('\t')
        report[line[1]] = report.get(line[1],0) + 1

那么期望的输出是什么?这样行吗:printkey,sumintx代表x的值代表计数和printkey,sumintx代表x的值/lenvalue代表平均值?每个房间的人数和平均值。请发布一个当前和期望输出的示例。@AlexRosenfeld我更新了我的问题当我打印出你的报告时,我得到了一个列表,你能确认这是预期的吗?:[{'people_id':'people_id room_id'},{'people_id':'18'},{'people_id':'232'},{'people_id':'38'},{'people_id':'447'},{'people_id':'512'},{'people_id':'68'}我只能使用标准图书馆
report = {}
with open("file.txt") as f:
    for line in f:
        line = line.strip().split('\t')
        report[line[1]] = report.get(line[1],0) + 1