python全栈开发笔记---------数据类型-----集合set
定义:由不同元素组成的集合,集合中是一组无序排列的可hash值,可以作为字典的key
1.不同元素组成
2.无序
3.集合中元素必须是不可变类型(数字,字符串,元组)
特性:集合的目的是讲不同的值放到一起,不同的集合间用来做关系运算,无需纠结于集合中单个值。
集合通过set(iterable)方法创建,参数iterable为可迭代对象。
s = set('hello')
print(s)  # 输出结果:{'l', 'o', 'e', 'h'}
s = set(['alex', 'alex', ''])
print(s)  # 输出结果:{'alex', '123'}
集合的方法
add(self,element) 添加方法
s = {1,2,3,4,5,6}
s.add('')
print(s)   #输出结果:{1, 2, 3, 4, 5, 6, '3'}
clear(self) 清空方法
s = {1,2,3,4,5,6}
s.clear()
print(s)   #输出结果:set()
copy(self) 拷贝/复制
s = {1,2,3,4,5,6}
s1 = s.copy()
print(s1)    #输出结果:{1, 2, 3, 4, 5, 6}
pop(self) 随机删除一个元素
s = {'s',1,2,3,4,5,6}
s.pop()
print(s)   #输出结果:{2, 3, 4, 's', 5, 6}
remove(self,element) 删除指定元素,如果给的元素不存在,那么删除会报错
s = {'ss',1,2,3,4,5,6}
s.remove('ss')
print(s)        #{1, 2, 3, 4, 5, 6}
s.remove('')
print(s)    #报错
discard(self,element) 删除指定元素,如果给的元素不存在,不会报错
s = {'ss',1,2,3,4,5,6}
s.discard('ss')
print(s)
s.discard('')
print(s)
python_l = ['','','']
linux_l = ['','','']
把上面的列表转换成集合 set
p_l = set(python_l)
l_l = set(linux_l)
求交集intersection(self,s)
print(p_l.intersection(l_l))   #{'123', '456'}   求集合交集
print(p_l&l_l)      #符号法
求并集union(self,s)
print(p_l.union(l_l))   #{'456', '258', '789', '123'}
print(p_l|l_l)   # 符号法
求差集difference(self,s)
print("差集",p_l-l_l)
print(p_l.difference(l_l))
print("差集",l_l-p_l)
print(l_l.difference(p_l))


交叉补集
print(p_l.symmetric_difference(l_l))
print(p_l^l_l) #符号法
difference_update() 求完差集之后更新下相关集合名词。
intersection_update()求完交集之后更新下相关集合名词。 isdisjoint(self,s) 求2个集合是否有公有部分,如果没有,返回True.
# s1 ={1,2}
# s2 ={3,5}
# s3 = s1.isdisjoint(s2)
# print(s3)  #True
issubset()方法用于判断集合的所有元素是否都包含在指定集合中,如果是则返回 True,否则返回 False。
s1={1,2}
s2 = {1,2,3}
print(s1.issubset(s2))  #s1是不是s2的子集
#s1<=s2 或者说 s1是s2的子集,s2是s2的父集
#issuperset(self,s)
print(s2.issuperset(s1)) #s2是不是s1的父集
update()按指定集合来更新,可以更新多个值, 区别于add()只能加一个值
s1 ={1,2}
s2 = {1,2,3}
s1.update(s2)
print(s1) # {1,2,3}
集合默认用set生成的是可变类型的,
frozenset 也可以生成不可变类型。 也就是没法使用pop remover add等方法
# s=frozenset('hello')
# print(s)
列表去重复操作
names =['alex','alex','wupeiqi']
names = list(set(names))
print(names)
python全栈开发笔记---------数据类型-----集合set的更多相关文章
- python全栈开发笔记---数据类型--综合练习题
		
一.有两个列表 l1 = [11,22,33] l2 = [22,33,44] a. 获取内容相同的元素列表 for item in l1: if item in l2: print(it ...
 - python全栈开发笔记---------数据类型---字典方法
		
def clear(self) 清空字典里所有元素 # info = { # "k1":18, # "k2":True, # "k3":[ ...
 - python全栈开发笔记---------数据类型-----字典dict
		
字典 #dict #1.基本结构 info= { "k1" : "v1", #键值对 "k2" : "v2" } ### ...
 - python全栈开发笔记---------数据类型****整理****
		
一.数字 int(..) 二.字符串 replace/find/join/strip/startswith/split/upper/lower/format tempalet ='i am {name ...
 - python全栈开发笔记----基本数据类型---列表List
		
#list 是 类 ,列表 序列是Python中最基本的数据结构.序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推. Python有6个序列的内置类型,但 ...
 - python全栈开发笔记----基本数据类型---列表方法
		
#list 类中提供的方法 #参数 1.def append(self, *args, **kwargs)原来值最后追加#对象..方法(..) #li对象调用append方法 li = [11,22, ...
 - python全栈开发笔记---基本数据类型--字符串魔法
		
字符串: def capitalize(self, *args, **kwargs) test = "aLxs" v = test.capitalize() #capitalize ...
 - python全栈开发笔记---基本数据类型--数字型魔法
		
数字 int a1 =123 a2=456 int 讲字符串转换为数字 a = " #字符串 b = int(a) #将字符串转换成整形 b = b + 1000 #只有整形的时候才可以进 ...
 - python全栈开发笔记---------基本数据类型
		
基本数据类似包括: 字符串(str) 数字(int) 列表(list) 元祖(tuple) 字典(dict) 布尔值(bool) 字符串(引号): name = "我是某某某" n ...
 
随机推荐
- JS基本事件(小记)
			
一. 事件的概念种类及作用(一) 概念:通常鼠标或热键的动作我们称之为事件(event),热键引发的一连串程序的动作,称之为事件驱动(event Driver).而对事件进行处理的程序或函 ...
 - JS的防抖与节流
			
JS的防抖与节流在进行窗口的resize.scroll,输入框内容校验等操作时,如果事件处理函数调用的频率无限制,会加重浏览器的负担,导致用户体验非常糟糕.此时我们可以采用debounce(防抖)和t ...
 - 怎样从外网访问内网Memcached数据库
			
外网访问内网Memcached数据库 本地安装了Memcached数据库,只能在局域网内访问,怎样从外网也能访问本地Memcached数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装 ...
 - Shift键的三个妙用!Word又现神操作!
			
1.Shift+Alt+上下方向键 :调整段落顺序 同时按这三个键,能够调整段落的顺序,也可以用来调整表格中的行序. 2.Shift+F3:英文大写/小写/首字母大写,这三种模式切换 PS:如果中间夹 ...
 - Python 协程了解
			
协程: 1.协程,又称微线程,纤程.英文名Coroutine. 2.协程是跑在线程内的单线程,串行没有锁. 3.协程是一种用户态的轻量级线程. 4.协程CPU是访问不到的,协程是用户自己控制的. ...
 - Shell 脚本进阶2
			
1.查询系统基础情况脚本 #!/bin/bash # 系统状态查询脚本 # 输出系统基本信息 # # 系统版本 SYSTEM_VERSION=`cat /etc/redhat-release` # 主 ...
 - 使用curl自动签到smzdm
			
curl -H 'cookie:urcookies' -e 'http://www.smzdm.com/qiandao/' -k 'https://zhiyou.smzdm.com/user/chec ...
 - 【HAOI 2012】高速公路
			
Problem Description \(Y901\) 高速公路是一条重要的交通纽带,政府部门建设初期的投入以及使用期间的养护费用都不低,因此政府在这条高速公路上设立了许多收费站. \(Y901\) ...
 - frame和bounds有什么不同?
			
frame指的是该view在父view坐标系统中的位置和大小.(参照物是他的父坐标系统). bounds指的是该view在他本身的坐标系统中的位置和大小.(参照点是本身的坐标系统).
 - 【转载】Selenium WebDriver的简单操作说明
			
转载自:http://blog.csdn.net/xiao190128/article/details/49784121 1.打开一个测试浏览器 对浏览器进行操作首先需要打开一个浏览器,接下来才能对浏 ...