python - 根据键的重复值从列表中删除字典

标签 python dictionary

我是 Python 新手。假设我有以下字典列表:

mydictList= [{'a':1,'b':2,'c':3},{'a':2,'b':2,'c':4},{'a':2,'b':3,'c':4}]

从上面的列表中,我想删除具有相同键 b 值的字典。所以结果列表应该是:

mydictList = [{'a':1,'b':2,'c':3},{'a':2,'b':3,'c':4}]

最佳答案

您可以根据 b 的值创建一个新字典,迭代mydictList向后(因为您想保留 b 的第一个值),并仅获取字典中的值,如下所示

>>> {item['b'] : item for item in reversed(mydictList)}.values()
[{'a': 1, 'c': 3, 'b': 2}, {'a': 2, 'c': 4, 'b': 3}]

如果您使用的是 Python 3.x,您可能需要使用 list对字典值进行函数处理,如下所示

>>> list({item['b'] : item for item in reversed(mydictList)}.values())

注意:此解决方案可能不会维护字典的顺序。

关于python - 根据键的重复值从列表中删除字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25028593/

相关文章:

python - 为什么这个网络抓取不能在 python 上运行?

python - 如何在 Spark SQL 中压缩两个数组列

python - 基于字典键分组

javascript - 从嵌套数据结构创建自定义对象数组

python - 使用Python通过 turtle 引用列表或字典绘制正弦波

algorithm - 实现单词词典的数据结构

python - "object got multiple values for keyword argument"使用字典写数据库时

python - 使用来自第二个应用程序的模型测试 Django 应用程序

android - Python 和 Android Fastboot 的输出

java - Map 可以将 java 类 ByteArrayoutputstream 作为值吗? List 可以保存 javax.mail.MimeMessage 对象吗?