python -列表中嵌套多个字典, 如何取出字典的重复值

221 阅读1分钟

描述

在一个列表中嵌套了字典, 如下:

weights = [{'subject': 2896, 'distance': 0.8343115868747709}, {'subject': 2834, 'distance': 0.8147950789314828}, {'subject': 2937, 'distance': 0.7866704974194655}]

需求: 如果subject有重复, 则取出重复的subject值 如果没有重复, 则取出所有subject中第一个值

代码

import pandas as pd
from collections import Counter   #引入Counter

def predict(b):
    subject = 0
    for key, value in b.items():
        if value > 1:
            subject = key
        else:
            subject = list[0]

    return subject

list = []
weights = [{'subject': 2896, 'distance': 0.8343115868747709}, {'subject': 2834, 'distance': 0.8147950789314828}, {'subject': 2937, 'distance': 0.7866704974194655}]
for weight in weights:
    list.append(weight['subject'])

print(list)

b = dict(Counter(list))
print(predict(b))

在这里插入图片描述