总算彻底搞懂Python集合了
集合(set)是一种无序的不重复元素序列,可以使用大括号 { } 或者 set() 函数创建集合。
它是Python中一个非常重要,且频繁用到的概念。无论是在日常开发过程中,还是在面试过程中都会经常遇到,今天就来11「不为人知」的集合用法。
程序员宝藏库 :https://github.com/Jackpopc/CS-Books-Store difference(set)
set_1.difference(set_2) :这个方法帮助你获得两个集合之间的差异,换句话说,它让你获得存在于set_1中而不存在于给定集合(set_2)中的元素。 # example 1 recepie_requirements = {"orange", "chocolate", "salt", "pepper"} what_I_have = {"apple", "banana","salt"} # I have to buy orange chocolate pepper print("I have to buy", *recepie_requirements.difference(what_I_have)) # example2 all_subscribers = {"aya", "john", "smith", "sparf", "kyle"} admins = {"aya", "sparf"} users = all_subscribers.difference(admins) # {"kyle", "smith", "john"} print(users)union(set)
set_1.union(set_2) :(set_1 U set_2) 这个set方法返回一个包含set_1的元素和set_2的元素的集合,此外,返回的集合只包含唯一的元素。 admins = {"aya", "sparf"} users = {"aya","kyle", "smith", "john"} all_subscribers = admins.union(users) # {"smith", "aya", "sparf", "kyle", "john"} print(all_subscribers)intersection(set)
set_1.intersection(set_2) :取两个集合的交集,只返回同时存在于set_1和set_2中的元素。 shop = {"orange", "pepper", "banana", "sugar"} what_I_have = {"orange", "sugar"} # I should not buy {"orange", "sugar"} because I have them! print(f"I should not buy {shop.intersection(what_I_have)} because I have them!")issubset()
set_1.issubset(set_2) :检查set_1的所有元素是否存在于set_2中。 nearest_library_books = {"the power of now", "why we sleep", "rich dad poor dad"} necessary_books = {"atomic habits","the 48 laws of power", "why we sleep"} if necessary_books.issubset(nearest_library_books): print("yes, you can buy these books from your nearest library") else: print("unfortunately, you have to go to another library") # unfortunately, you have to go to another libraryissuperset()
set_1.issuperset(set_2) : 检查set_2的所有元素是否存在于set_1中。 nearest_library_books = {"the power of now", "why we sleep", "rich dad poor dad"} necessary_books = {"atomic habits","the 48 laws of power", "why we sleep"} if nearest_library_books.issuperset(necessary_books): print("yes, you can buy these books from your nearest library") else: print("unfortunately, you have to go to another library") # unfortunately, you have to go to another libraryisdisjoint(set)
isdisjoint(set) : 检查这两个集合是否包含共同的元素。 set_1 = {12, 38, 36} set_2 = {4, 40, 12} # means can set_1 element - set_2 element == 0 ? can_substruction_be_zero = set_1.isdisjoint(set_2) print(can_substruction_be_zero) # Falsediscard(value), remove(value), pop()
pop() : 从一个集合中删除一个随机元素。
discard(value) : 删除一个集合中的指定元素,如果该元素不存在,不会引发错误。
remove(value) : 删除一个集合中的指定元素,如果该元素不存在,则会引发错误。 users = {"Aya Bouchiha", "John Doe", "Kyle Smith", "Nabo Snay"} deleted_account = "Aya Bouchiha" users.discard(deleted_account) users.discard("Hi!") print(users) # {"Kyle Smith", "John Doe", "Nabo Snay"} users.remove("Kyle Smith") print(users) # {"Nabo Snay", "John Doe"} users.pop() print(users) # {"John Doe"} users.remove("Hello!") # KeyErrorclear()
clear() : 删除集合中所有元素。 countries = {"Morocco", "UK", "Spain", "USA", "UK"} print(len(countries)) # 4 countries.clear() print(countries) # set() print(len(countries)) # 0copy
copy() : 这个方法让你得到一个指定元素集的副本 countries = {"Morocco", "UK", "Spain", "USA", "UK"} print(countries) # {"UK", "Morocco", "Spain", "USA"} print(countries.copy()) # {"UK", "Morocco", "Spain", "USA"}
论无事生非手机超越相机?时常看到手机取代单反的文章,配以图片给大家猜测哪个是手机拍的哪个是单反拍的,然后从各种角度证明手机取代单反了(每次回复看细节的时候基本上没下文)。2020年了,确实也一直想知道手机
属词比事究竟是什么意思?礼记经解言属辞比事,春秋教也。自属辞比事概念诞生后,历代学人对此颇多研读,时人各得一隅,争议绵延千年。自近代以来,随着传统经学的解体和现代学术的建立,对春秋等传统经学的研究被分化到
修车去哪儿?亲身经历体验到还是4S店靠谱网上很多文章讲到4S店各种黑幕,价格又高,外面保养又便宜又好。结果亲自到外面保养了几次,又回到了4S店。常规保养不提了,好点坏点基本上没啥感觉。期间换了一次变速箱油,一次汽油泵,都
谦心旅行笔记即墨古城2019年十一偶然的机会去了即墨,自然不能错过即墨古城。住的地方离古城大概1。5km,骑路过去,顺便看看街景。马路对面就是即墨古城了。把马路去掉,留下空荡荡的黄土地,拍电影挺好。牌
话说VisualStudioCommunity的许可条款最近关于微软的宇宙第一开发工具VisualStudio的话题挺多的。关于VisualStudio未来的发展,收费始终可能是排在头一号的问题。有些人认为有个VisualStudioC
从小米的胜利到鸿蒙的横空出世对于小米的胜利,很多人觉得胜之不武,网上意见多种多样。我只有一个疑问,如果小米用的是自己的芯片自己的操作系统,就算是只用了自己的芯片,那么还能不能胜?看看华为就知道了,也许还有人相
谦心旅行笔记皖南川藏线皖南川藏线是一条穿越皖南山区的线路。从宁国县青龙乡到泾县蔡村,风景秀丽,不乏迷你版崇山峻岭。一先说要紧的1。线路从东往西从宁国县青龙乡上X061县道,后经过X076X073,最终到
对待顶替学籍,也不可一刀切!灌南县是距离连云港市区最远的县城,也许是较为偏僻的缘故,这里很少得到外界的关注。今年6月,一封实名举报信打破了小县城的平静。信中称,如今在当地担任公职的一对小夫妻,多年前曾冒用他人
三星壁纸崩溃解决方案(原创)首先啥都别说了,不作死就不会死,那张图片真的会把系统搞崩溃,千真万确!头铁的我不信邪,手贱换了壁纸,真的崩溃了。(国行note9512)废话不说,直接捞干货,说说怎么处理。首先,这
鲁迅说胡须一场关于中西方文化的探讨。今年夏天游了一回长安,一个多月之后,胡里胡涂的回来了。知道的朋友便问我你以为那边怎样?我这才栗然地回想长安,记得看见很多的白杨,很大的石榴树,道中喝了不少
实拍宝马X6低配,2。0T引擎百公里加速6。9秒,低重心过弯印象深刻跨界风格车型,目前屡见不鲜,而这一方面说到鼻祖款车型,我们会想到宝马X6,作为一款跨界轿跑SUV,辨识度极高,但在家族车型里,宝马X6销量并不算多么出色。从定价上来看,目前在售版本