Python集合及其运算
集合(set)
集合是由不同可hash的值组成的,里面所有的值都是唯一的,也是无序的
集合的创建
>>>set_test = {"name", "age", "hometown"}
## 把值放入{ }中
>>>lis = ("name", "age", "hometown")
>>>set_test = set(lis)
>>> set_test
{'name', 'age', 'hometown'}
##利用set()函数,把其他类型转换为set
>>> list_test = ["name", "age", "hometown"]
>>> set_test = frozenset(list_test)
>>> set_test
frozenset({'name', 'age', 'hometown'})
##利用frozenset()函数可以创造一个set,并把它放到元组里面
集合的操作
add(self, *args, **kwargs)
添加值到集合里面
>>> set_test
{'name', 'age', 'hometown'}
>>> set_test.add("hobby")
>>> set_test
{'name', 'age', 'hobby', 'hometown'}
clear(self, *args, **kwargs)
清空集合
copy(self, *args, **kwargs)
浅拷贝
discard(self, *args, **kwargs)
删除某值,没有时不会报错
>>> set_test
{'name', 'age', 'hobby', 'hometown'}
>>> set_test.discard("hobby")
>>> set_test
{'name', 'age', 'hometown'}
pop(self, *args, **kwargs)
当集合是由列表和元组组成时,set.pop()是从左边删除元素的,并且可以得到被删除的值
>>> set_test
{'name', 'age', 'hometown'}
>>> set_test.pop()
'name'
>>> set_test.pop()
'age'
remove(self, *args, **kwargs)
删除某值,但是如果没有的话,就会报错
>>> set_test = {'name', 'age', 'hometown'}
>>> set_test.remove("hometown")
>>> set_test
{'name', 'age'}
update(self, *args, **kwargs)
更新值,可以在set里面添加多个值
>>> set_test = {"Jack", "Mark", "Ada"}
>>> set_test.update(["Jewish", "Obanma", "Anna"])
>>> print(set_test)
{'Obanma', 'Mark', 'Jack', 'Anna', 'Ada', 'Jewish'}
集合的运算
求交集
>>> set_test1 = {"YuanMing", "Hermaeus", "Chenglong", "Kelan"}
>>> set_test2 = {"YuanMing", "Hermaeus", "ZhangJie","Jack"} >>> test_result = set_test1.intersection(set_test2)
>>> print(test_result)
{'YuanMing', 'Hermaeus'} >>> test_result = set_test1&set_test2
>>> print(test_result)
{'YuanMing', 'Hermaeus'}
求并集
>>> set_test1 = {"YuanMing", "Hermaeus", "Chenglong", "Kelan"}
>>> set_test2 = {"YuanMing", "Hermaeus", "ZhangJie","Jack"} >>> test_result = set_test1.union(set_test2)
>>> print(test_result)
{'Kelan', 'YuanMing', 'ZhangJie', 'Jack', 'Hermaeus', 'Chenglong'} >>> test_result = set_test1|set_test2
>>> print(test_result)
{'Kelan', 'YuanMing', 'ZhangJie', 'Jack', 'Hermaeus', 'Chenglong'}
求差集
>>> set_test1 = {"YuanMing", "Hermaeus", "Chenglong", "Kelan"}
>>> set_test2 = {"YuanMing", "Hermaeus", "ZhangJie","Jack"} >>> test_result = set_test1.difference(set_test2)
>>> test_result1 = set_test1.difference(set_test2)
>>> print(test_result1)
{'Kelan', 'Chenglong'} >>> test_result1 = set_test1-set_test2
>>> print(test_result1)
{'Kelan', 'Chenglong'} >>> test_result2 = set_test2.difference(set_test1)
>>> print(test_result2)
{'ZhangJie', 'Jack'} >>> test_result2 = set_test2-set_test1
>>> print(test_result2)
{'ZhangJie', 'Jack'}
求交叉补集
>>> set_test1 = {"YuanMing", "Hermaeus", "Chenglong", "Kelan"}
>>> set_test2 = {"YuanMing", "Hermaeus", "ZhangJie","Jack"}
>>> test_result = set_test1.symmetric_difference(set_test2)
>>> print(test_result)
{'ZhangJie', 'Jack', 'Kelan', 'Chenglong'}
>>> test_result = set_test1^set_test2
>>> print(test_result)
{'ZhangJie', 'Jack', 'Kelan', 'Chenglong'}
求集赋值
symmetric_difference_update(self, *args, **kwargs)
>>> set_test1 = {"Jack", "Mark", "Devid"}
>>> set_test2 = {"Jack", "Marish", "Good"} >>> set_test1.symmetric_update(set_test2)
>>> set_test1.symmetric_difference_update(set_test2) ## 把得到值赋予set_test1
>>> set_test1, set_test2
({'Good', 'Marish', 'Devid', 'Mark'}, {'Good', 'Jack', 'Marish'}) >>> set_test1 ^= set_test2
>>> set_test1
{'Good', 'Marish', 'Devid', 'Mark'}
intersection_update(self, *args, **kwargs)
>>> set_test1 = {"Jack", "Mark", "Devid"}
>>> set_test2 = {"Jack", "Marish", "Good"} >>> set_test1.intersection_update(set_test2) ##把得到的值赋予set_test1
>>> set_test1, set_test2
({'Jack'}, {'Good', 'Jack', 'Marish'}) >>> set_test1 &= set_test2
>>> set_test1
{'Jack'}
difference_update(self, *args, **kwargs)
>>> set_test1 = {"Jack", "Mark", "Devid"}
>>> set_test2 = {"Jack", "Marish", "Good"} >>> set_test1.difference_update(set_test2)
>>> set_test1, set_test2
({'Devid', 'Mark'}, {'Good', 'Jack', 'Marish'})
>>> set_test1 = {"Jack", "Mark", "Devid"}
>>> set_test2 = {"Jack", "Marish", "Good"} >>> set_test1 -= set_test2
>>> set_test1
{'Devid', 'Mark'}
set_test1 |= set_test2
>>> set_test1 = {"Jack", "Mark", "Devid"}
>>> set_test2 = {"Jack", "Marish", "Good"}
>>> set_test1 |= set_test2
>>> set_test1
子集与父集
issubset(self, *args, **kwargs)
A.issubset(B) A是B的子集吗? 返回bool
>>> set_test2 = {"Jack", "Marish", "Good"}
>>> set_test1 = {"Jack"}
>>> set_test2.issubset(set_test1)
False
>>> set_test1.issubset(set_test2)
True
issuperset(self, *args, **kwargs)
A.issuperset(B) A是B的父集吗? 返回bool
>>> set_test2 = {"Jack", "Marish", "Good"}
>>> set_test1 = {"Jack"}
>>> set_test1.issuperset(set_test2)
False
>>> set_test2.issuperset(set_test1)
True
isdisjoint(self, *args, **kwargs)
返回True如果两个set没有交集
>>> set_test1 = {"Jack", "Mark", "Devid"}
>>> set_test2 = {"Ada", "Marish", "Good"}
>>> set_test1.isdisjoint(set_test2)
True
<,<= OR >,>=
>>> set_test1 = {"Jack", "Mark", "Devid"}
>>> set_test2 = {"Jack", "Mark"
>>> set_test1 < set_test2
False
>>> set_test1 > set_test2
True
Python集合及其运算的更多相关文章
- python集合的运算
& 交集 | 并集 - 差集 ^ 异或集 # 在对集合做运算时,不会影响原来的集合,而是返回一个运算结果 # 创建两个集合 s = {1,2,3,4,5} s2 = {3,4,5, ...
- 初学Python——集合及其运算
一.集合定义及其功能 集合是一个无序的.不重复的数据组合,和字典列表一样也是一种数据类型. 集合两个最主要的功能:①去重(把一个列表变成集合,就自动去重了) ②关系测试(测试两组数据之间的交.并.差集 ...
- day14 Python集合关系运算交,差,并集
low逼写法,没用集合 python_1 = ['charon','pluto','ran'] linux_1 = ['ran','xuexue','ting'] python_and_linux = ...
- python 集合的运算
x = frozenset([, , , , ]) y = frozenset([, , , , ]) #如果x与y没有公共元素,返回true print(x.isdisjoint(y)) #返回x与 ...
- Python全栈之路3--set集合--三元运算--深浅拷贝--初识函数
一.上节课的重点回顾: 1.类名加括号其实就是执行类的__init__方法: 2.int a.创建方式 n1 = 123 #根据int类创建了一个对象 n2 = int(123) #根据int类创建一 ...
- python集合类型
集合类型简介 集合也是容器,其内元素都是无序.唯一.不可变的.它常用来做成员测试.移除重复数据.数据计算(比如交集.并集.差集). 集合Set是dict的无value版.集合也使用大括号包围: > ...
- python集合与字典的用法
python集合与字典的用法 集合: 1.增加 add 2.删除 •del 删除集合 •discard(常用)删除集合中的元素 #删除一个不存在的元素不会报错 •remove 删除一个不存在的 ...
- Python—集合的操作、文件的操作
1.集合的操作 2.文件的操作 1.集合的操作 定义: 1.不同元素组成,自动去重 2.无序 3.集合中的元素必须是不可变类型 1.集合的定义: >>> s1 = set('abcd ...
- python集合、元组、字典
主要内容: 2.集合 3.元组 4.字典 复习: 字符串和元组一样,只能读不能写.列表和字典可以嵌套任何东西,列表可以嵌套列表 L = list("hello") # L = [ ...
随机推荐
- 自动化测试的Selenium的python版安装与使用
Selenium是专做网页自动化测试的,即web drive,通过百度Selenium就能找到Selenium的官网 由图可见,selenium支持相当多的编程语言进行网页自动化测试,这里我们使用py ...
- Android Studio连接天天模拟器
方法:安装两者后,打开天天模拟器的adb.exe所在目录,我的是C:\Users\ Android\sdk\platform-tools,在打开的文件夹下使用“shift+鼠标右键”打开cmd终端. ...
- PHP实现邮件的自动发送
最近做一个邮箱验证的功能,研究了一会,搞定了邮件的自动发送.下面用qq邮箱作为演示,一步一步来解释: 代码下载地址 首先,就是做到邮件的发送,代码如下: <?php//邮件发送require ' ...
- 解决ubuntu下,QQ重启后出现个人文件夹已被占用的问题
首先,是wine QQ的安转教程:Wine安装最新版QQ(8.9.2)的简单教程 - Powered by Discuz! 里面作者也提到了关于重启后出现个人文件夹被占用的情况. 如下: 这里,如果不 ...
- Beta冲刺博客汇总(麻瓜制造者)
Beta冲刺博客 Beta冲刺(1/5)(麻瓜制造者) Beta冲刺(2/5)(麻瓜制造者) Beta冲刺(3/5)(麻瓜制造者) Beta冲刺(4/5)(麻瓜制造者) Beta冲刺(5/5)(麻瓜制 ...
- 《生命》第二集:Reptiles and Amphibians (爬行和两栖动物)
第二集也是一个个动物的片段,不过集中在爬行和两栖类动物上. 印度尼西亚的瀑布蟾蜍进化出神器强有力的脚,能够抓牢很多物体,是逃生的手段,同一环境下,卵石蟾蜍,能够缩紧全身肌肉,眼山坡下滑,是另一种逃生是 ...
- Zookeeper源码编译为Eclipse工程(win7下Ant编译)
前言 ZooKeeper是雅虎的.用Ant进行软件构建. 千里之行,始于足下.想看源码的第一步,是下载源码并导入某个IDE工具. Ant http://ant.apache.org/ Windows: ...
- SharePoint 2010 在同意匿名訪问的站点中隐藏登陆链接
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/u012025054/article/details/37565787 SharePoint 2010 ...
- WPF 格式化输出- IValueConverter接口的使用 datagrid列中的值转换显示
以前在用ASP.NET 做B/S系统时,可以方便地在GRIDVIEW DATAList等数据控件中,使用自定义的代码逻辑,比如 使用 <%# GetBalance(custID) %> 这 ...
- 【转】Xposed出现 java.lang.IllegalAccessError: Class ref in pre-verified class resolved to unexpected implementation
Xposed出现 java.lang.IllegalAccessError: Class ref in pre-verified class resolved to unexpected implem ...