前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Python - 删除列表中的重复字典

Python - 删除列表中的重复字典

作者头像
很酷的站长
发布于 2023-08-11 07:29:18
发布于 2023-08-11 07:29:18
1.6K10
代码可运行
举报
运行总次数:0
代码可运行

Python 是一个非常广泛使用的平台,用于 Web 开发、数据科学、机器学习以及自动化执行不同的过程。我们可以将数据存储在python中,以不同的数据类型,例如列表,字典,数据集。python字典中的数据和信息可以根据我们的选择进行编辑和更改

下面的文章将提供有关删除列表中重复词典的不同方法的信息。直接选择重复词典的选项不可用,因此我们将不得不使用 python 的不同方法和功能来删除词典。

删除重复词典的各种方法

列表理解

由于我们无法直接比较列表中的不同词典,因此我们将不得不将它们转换为其他形式,以便我们可以比较存在的不同词典。通过以下示例,我们可以更好地理解它:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def all_duplicate(whole_dict):       same = set()   #We check all the dictionaries with the help of same set created     return [dict(tuple(sorted(dupl.items()))) for dupl in whole_dict if tuple(sorted(dupl.items())) not in same and not same.add(tuple(sorted(dupl.items())))]  #We will convert each dictionary into tuple so that the dictionary having the same value will be removed and the duplicate dictionary can be found easily, if the tuple has a different value then the dictionary will be kept.  # Example  Whole_Dictionary = [     {"Place": "Haldwani", "State": 'Uttrakhand'},     {"Place": "Hisar", "State": 'Haryana'},     {"Place": "Shillong", "State": 'Meghalaya'},     {"Place": "Kochi", "State": 'Kerala'},     {"Place": "Bhopal", "State": 'Madhya Pradesh'},     {"Place": "Kochi", "State": 'Kerala'},   #This Dictionary is repeating which is to be removed     {"Place": "Haridwar", "State": 'Uttarakhand'} ] Final_Dict = all_duplicate(Whole_Dictionary) print(Final_Dict)   #The output after removing the duplicate dictionary will be shown

输出

上面示例的输出如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[{'Place': 'Haldwani', 'State': 'Uttrakhand'}, {'Place': 'Hisar', 'State': 'Haryana'}, {'Place': 'Shillong', 'State': 'Meghalaya'}, {'Place': 'Kochi', 'State': 'Kerala'}, {'Place': 'Bhopal', 'State': 'Madhya Pradesh'}, {'Place': 'Haridwar', 'State': 'Uttarakhand'}]

熊猫图书馆

此方法仅在具有许多不同元素的大量数据集的情况下使用,也就是说,仅适用于具有复杂数据的字典。我们可以通过下面的例子来理解熊猫库的使用:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import pandas as ps   #Do not forget to import pandas or error might occur #Convert the dictionaries into panda frame def all_duplicate(data):     dd = ps.DataFrame(data)     dd.drop_duplicates(inplace=True)   #Drop_duplicates() method will remove all the duplicate dictionaries     return dd.to_dict(orient='records')  #Converting dictionaries back into list of dictionaries from panda frame # Example  Whole_Dictionary = [     {"Place": "Haldwani", "State": 'Uttrakhand'},     {"Place": "Hisar", "State": 'Haryana'},     {"Place": "Shillong", "State": 'Meghalaya'},     {"Place": "Kochi", "State": 'Kerala'},     {"Place": "Bhopal", "State": 'Madhya Pradesh'},     {"Place": "Kochi", "State": 'Kerala'},   #This Dictionary is repeating which is to be removed     {"Place": "Haridwar", "State": 'Uttarakhand'} ] Final_Dict = all_duplicate(Whole_Dictionary) print(Final_Dict)   #The output after removing the duplicate dictionary will be shown

输出

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[{'Place': 'Haldwani', 'State': 'Uttrakhand'}, {'Place': 'Hisar', 'State': 'Haryana'}, {'Place': 'Shillong', 'State': 'Meghalaya'}, {'Place': 'Kochi', 'State': 'Kerala'}, {'Place': 'Bhopal', 'State': 'Madhya Pradesh'}, {'Place': 'Haridwar', 'State': 'Uttarakhand'}]

冰雪奇缘词典

使用冻结词典的想法是解决词典不可散列性的一种技术。冻结字典可以用作另一个字典中的键或集合中的元素,因为它本质上是字典的不可变形式。冻结词典库提供了冻结词典的便捷实现。通过以下示例,我们可以更好地理解它:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def make_hashable(d):     return hash(frozenset(d.items())) # We will convert the dictionary key values into frozen set and then pass it to hash function def all_duplicate(dicts):     seen = set()  #It will check for similarities in the list     return [d for d in dicts if not (make_hashable(d) in seen or seen.add(make_hashable(d)))] #If similarity will be found it will be removed and if not then the data will be kept # Example  Whole_Dictionary = [     {"Place": "Haldwani", "State": 'Uttrakhand'},     {"Place": "Hisar", "State": 'Haryana'},     {"Place": "Shillong", "State": 'Meghalaya'},     {"Place": "Kochi", "State": 'Kerala'},     {"Place": "Bhopal", "State": 'Madhya Pradesh'},     {"Place": "Kochi", "State": 'Kerala'},   #This Dictionary is repeating which is to be removed     {"Place": "Haridwar", "State": 'Uttarakhand'} ] Final_Dict = all_duplicate(Whole_Dictionary) print(Final_Dict)   #The output after removing the duplicate dictionary will be shown

输出

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[{'Place': 'Haldwani', 'State': 'Uttrakhand'}, {'Place': 'Hisar', 'State': 'Haryana'}, {'Place': 'Shillong', 'State': 'Meghalaya'}, {'Place': 'Kochi', 'State': 'Kerala'}, {'Place': 'Bhopal', 'State': 'Madhya Pradesh'}, {'Place': 'Haridwar', 'State': 'Uttarakhand'}

辅助函数

这是一种从词典列表中删除重复词典的复杂方法。通过使用帮助程序函数,在此过程中,每个字典都转换为其内容的排序元组。然后使用此辅助功能从字典列表中找到重复的元组并将其删除。通过以下示例,我们可以更好地理解它:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def sorted_dict_to_tuple(d):  # sorted_dicts_to_tuple takes the dictionary as input and sorts it into tuple     return tuple(sorted(d.items())) def all_duplicates(dicts):  # The all_duplicates function will check all the elements in the dictionary and keep track of any repeating element     seen = set()      return [d for d in dicts if not (sorted_dict_to_tuple(d) in seen or seen.add(sorted_dict_to_tuple(d)))] # Example  Whole_Dictionary = [     {"Place": "Haldwani", "State": 'Uttrakhand'},     {"Place": "Hisar", "State": 'Haryana'},     {"Place": "Shillong", "State": 'Meghalaya'},     {"Place": "Kochi", "State": 'Kerala'},     {"Place": "Bhopal", "State": 'Madhya Pradesh'},     {"Place": "Kochi", "State": 'Kerala'},   #This Dictionary is repeating which is to be removed     {"Place": "Haridwar", "State": 'Uttarakhand'} ] Final_Dict = all_duplicates(Whole_Dictionary) print(Final_Dict)   #The output after removing the duplicate dictionary will be shown

输出

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[{'Place': 'Haldwani', 'State': 'Uttrakhand'}, {'Place': 'Hisar', 'State': 'Haryana'}, {'Place': 'Shillong', 'State': 'Meghalaya'}, {'Place': 'Kochi', 'State': 'Kerala'}, {'Place': 'Bhopal', 'State': 'Madhya Pradesh'}, {'Place': 'Haridwar', 'State': 'Uttarakhand'}]

结论

遵循正确的过程至关重要,因为从列表中删除重复词典是一项耗时且困难的任务。本文列出了可用于从列表中消除重复词典的所有方法。可以根据其便利性和应用领域使用任何方法。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
1 条评论
热度
最新
这篇文章写的不错!
这篇文章写的不错!
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
Python - 从字典列表中删除字典
字典是python的一个非常常用的功能,用于根据用户需要在其中存储数据。另一个典型的过程涉及编辑或操作此数据。要成为一名高效且快速的程序员,您必须弄清楚如何从字典列表中删除字典。有许多技术可以从词典列表中删除字典,本文将介绍这些技术。
很酷的站长
2023/08/11
2.3K0
Python - 从字典列表中删除字典
一步步学写Bazel lib&rules (1) - Bazel官方基础库简单浏览
Bazel很强大,但是很多人都说Bazel的学习曲线比较陡。一般的技能先要入门,然后慢慢深入,入门容易,深入难。Bazel不仅如此,往往找了半天,门都还没找到。
后端云
2022/11/25
4610
13 个非常有用的 Python 代码片段
假设我们在 Python 中有两个列表,我们希望将它们合并为字典形式,其中一个列表的项作为字典的键,另一个作为值。这是在用 Python 编写代码时经常遇到的一个非常常见的问题
Python学习者
2023/03/18
8180
Python Hashmap/Dicti
来自:http://www.dotnetperls.com/dictionary-python
py3study
2020/01/09
8690
13 个非常有用的 Python 代码片段,建议收藏!
假设我们在 Python 中有两个列表,我们希望将它们合并为字典形式,其中一个列表的项作为字典的键,另一个作为值。这是在用 Python 编写代码时经常遇到的一个非常常见的问题
周萝卜
2022/09/28
8000
13 个非常有用的 Python 代码片段,建议收藏!
使用 Python 从字典键中删除空格
Python是广泛用于数据分析,Web开发,AI的平台,并在自动化的帮助下执行许多不同类型的任务。对我们来说,了解 python 的不同功能很重要。在本文中,我们将了解字典功能以及如何使用 python 删除键之间的空格。此功能主要用于根据需要存储和检索数据,但有时字典的键值之间可能存在空格。当用户希望访问数据时,甚至在要编辑数据的情况下,这会导致错误。
很酷的站长
2023/08/11
1.6K0
使用 Python 从字典键中删除空格
如何在Python中将字典键作为列表返回?
参考链接: Python字典keys() 本文翻译自:How to return dictionary keys as a list in Python?  In Python 2.7 , I cou
用户7886150
2021/01/25
2.5K0
Swift基础 集合类型
翻译自:https://docs.swift.org/swift-book/LanguageGuide/CollectionTypes.html
郭顺发
2023/07/17
3860
Swift基础 集合类型
数据类型(一)、collections模块
除python提供的内置数据类型(int、float、str、list、tuple、dict)外,collections模块还提供了其他数据类型,使用如下功能需先导入collections模块(import collections):
狼啸风云
2023/10/07
3190
数据类型(一)、collections模块
Python中dict详解
#字典的添加、删除、修改操作 dict = {"a" : "apple", "b" : "banana", "g" : "grape", "o" : "orange"} dict["w"] = "watermelon" del(dict["a"]) dict["g"] = "grapefruit" print dict.pop("b") print dict dict.clear() print dict #字典的遍历 dict = {"a" : "apple", "b" : "banana", "g" : "grape", "o" : "orange"} for k in dict:     print "dict[%s] =" % k,dict[k] #字典items()的使用 dict = {"a" : "apple", "b" : "banana", "c" : "grape", "d" : "orange"} #每个元素是一个key和value组成的元组,以列表的方式输出 print dict.items() #调用items()实现字典的遍历 dict = {"a" : "apple", "b" : "banana", "g" : "grape", "o" : "orange"} for (k, v) in dict.items():     print "dict[%s] =" % k, v #调用iteritems()实现字典的遍历 dict = {"a" : "apple", "b" : "banana", "c" : "grape", "d" : "orange"} print dict.iteritems() for k, v in dict.iteritems():     print "dict[%s] =" % k, v for (k, v) in zip(dict.iterkeys(), dict.itervalues()):     print "dict[%s] =" % k, v #使用列表、字典作为字典的值 dict = {"a" : ("apple",), "bo" : {"b" : "banana", "o" : "orange"}, "g" : ["grape","grapefruit"]} print dict["a"] print dict["a"][0] print dict["bo"] print dict["bo"]["o"] print dict["g"] print dict["g"][1] dict = {"a" : "apple", "b" : "banana", "c" : "grape", "d" : "orange"} #输出key的列表 print dict.keys() #输出value的列表 print dict.values() #每个元素是一个key和value组成的元组,以列表的方式输出 print dict.items() dict = {"a" : "apple", "b" : "banana", "c" : "grape", "d" : "orange"} it = dict.iteritems() print it #字典中元素的获取方法 dict = {"a" : "apple", "b" : "banana", "c" : "grape", "d" : "orange"} print dict print dict.get("c", "apple")          print dict.get("e", "apple") #get()的等价语句 D = {"key1" : "value1", "key2" : "value2"} if "key1" in D:     print D["key1"] else:     print "None" #字典的更新 dict = {"a" : "apple", "b" : "banana"} print dict dict2 = {"c" : "grape", "d" : "orange"} dict.update(dict2) print dict #udpate()的等价语句 D = {"key1" : "value1", "key2" : "value2"} E = {"key3" : "value3", "key4" : "value4"} for k in E:     D[k] = E[k] print D #字典E中含有字典D中的key D = {"key1" : "value1", "key2" : "value2"} E = {"key2" : "value3", "key4" : "value4"} for k in E:     D[k] = E[k]
bear_fish
2018/09/20
8980
【编程课堂】有序字典 OrderedDict
编程课堂将和每周一坑一样,成为本教室公众号的一个长期固定栏目。每期讲解一个编程知识点,包括但不限于 Python 语法、模块介绍、编程小技巧等。用简短的篇幅,让你多了解一点编程。 上周每周一坑的题目 三门问题 将在本周讲解,还没有看过的同学赶紧的。 在我们的 Python 入门系列文章中,有介绍过字典 dict:【Python 第37课】 字典。其中有简单提及到,字典中的键值对是没有顺序的,所以无法像列表或元组一样通过索引来访问元素。 这简单的一笔带过恐怕不能引起注意,那么来看这个例子: d = {} d[
Crossin先生
2018/04/16
1.6K0
Elasticsearch 删除重复文档实现方式,你知道几个?
由于涉及 8.X 版本 Elasticsearch 以安全方式的连接,这里需要 python 升级到 3.10+ 版本才可以。
铭毅天下
2022/09/26
1.2K0
Elasticsearch 删除重复文档实现方式,你知道几个?
一行Python语句实现常用功能
深拷贝一个数据对象。因为python很多时候都是传引用,需要完整的复制一段数据的时候就需要深拷贝。
AIFEx
2023/09/23
2270
一行Python语句实现常用功能
35个高级Python知识点总结
众所周知,Java中强调“一切皆对象”,但是Python中的面向对象比Java更加彻底,因为Python中的类(class)也是对象,函数(function)也是对象,而且Python的代码和模块也都是对象。
py3study
2020/01/08
2.4K0
9. python 列表、元组、字典
('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'g', 'k', 'l', 'm', 'n')
py3study
2020/01/15
6470
由一个简单的Python合并字典问题引发的思考,如何优化我们的代码?
今天我们的题目是《由一个简单的Python合并字典问题引发的思考,如何优化我们的代码?》,为什么会有这个话题呢?起因是今天和一位刚刚面试完Python开发岗位的朋友交流,这个问题也是他在面试中遇到的问题:
云爬虫技术研究笔记
2019/11/15
1.5K0
Python字典按键/值排序的几种方法
同理,如果我们只需要对sort_by_value稍微修改一下,就可以得到按值排序的结果:
宇宙之一粟
2020/10/26
5.9K0
Python学习笔记8——列表、字典、元
参考书籍:《Learning_Python_5th_Edition.pdf》,一本英文书呢,我上传到百度网盘吧,请点击这里,密码是:kym3
py3study
2020/01/19
4700
python︱ collections模块(namedtuple/defaultdict/OrderedDict等)
给[‘x’,‘y’]这个tuple命名为point,这个tuple中,第一个空位命名为'x',第二个为'y'。
悟乙己
2019/05/26
1.9K0
python 快速入门
导入 #from dir1 import test #import dir1.test as test 列表推到: b3 =[x for x in xing if x in ming] print(b3)  li = [1, 2, 3, 4] [elem*2 for elem in li]  print [x*y for x in [1,2,3] for y in  [1,2,3]] zip: l1=[1,2,3,4] l2=[2,4,6,7] print(zip
py3study
2020/01/15
4710
相关推荐
Python - 从字典列表中删除字典
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验