集合

【集合set】

1.集合的特征:
集合是【可变】的容器
集合内的数据对象是唯一的(不能重复多次)
集合是无序的存储结构,集合中的数据没有先后关系
集合内的元素必须是不可变对象
集合是可迭代的
集合是相当于只有键没有值的字典(键则是集合的数据)
2.创建集合:
1.创建空集合:
	s = set() # 只有这一种方法创建非空集合(注意:s = () 是创建元组,s = {} 是创建字典)
2.创建非空集合
	s = {1,2,3}
3.集合的构造函数:
set() 创建空集合
set(iterable) 用可迭代对象创建一个新的集合对象
示例:
	s = set('ABC')
	s = set({1:'一',2:'二'})  # {1,2} 只有键
		>>> d = {1:'one',2:'two'}
		>>> d
		{1: 'one', 2: 'two'}
		>>> set(d.values())    # 把值打出
		{'two', 'one'}
		>>> set(d.items())     # 把键值对打出
		{(1, 'one'), (2, 'two')}

	s = set([1,2,3,4])
	s = set([1,2,[3,4]])  # 错的,[3,4]是可变对象,列表里不能再有列表!!!!!!!
	s = set((1,2,3,4))
4.集合的运算:
交集,并集,补集,子集,超集

描述方法:
s1 = {1,2,3}
s2 = {2,3,4}

生产两个集合的交集 & 读作('z' 'da')
s3 = s1 & s2

s3 = {2,3}

生成两个集合的并集 |
s3 = s1 | s2

s3 = {1,2,3,4}

生成两个集合的补集 - (减号)
s3 = s1 -  s2  (属于s1,不属于s2)

s3 = {1}

生成两个集合的对称补集 ^

s3 = s1 ^ s2

s3 = {1,4}      # 等同于s3 = (s1 - s2) | (s2 - s1)


判断一个集合是另一个集合的超集 > (大于号)
判断一个集合是另一个集合的子集  < (小于号)
例如:
     s1 = {2,3} 
     s2 = {1,2,3}
     s1 < s2 .....True,s2 > s1 ......True

== 或 != 判断相同或不同
{1,2,3} == {2,3,1} #True
另: 
>= 超集或相同  <= 子集或相同
5.in / not in 运算符:
等同于字典,in 运算符用于集合中,当某个值存在于集合中,则为真,否则为假
6.python3中可用于集合的函数:
len(x)  max(x)  min(x)  sum(x)  any(x)   all(x)
7.集合中常用的方法:
set.add(e) 在集合中添加一个新的元素,如果e存在,则不添加
set.remove(e)  从集合中删除一个元素,如果元素不存在集合中,则会产生一个keyError错误
set.discard(e) 从集合中移除一个元素,没有也不会产生错误
set.clear() 清空集合中所有元素
set.copy() 将集合进行依次浅拷贝(不会改变原来的)
set.pop() 从集合s中删除一个随机元素,如果集合为空,则引发一个keyError错误
set1.update(set2) 用set1 和set2更新集合set1
	>>> s1 = {1,3,5}
	>>> s1
	{1, 3, 5}
	>>> s2 = {2,4,6}
	>>> s2
	{2, 4, 6}
	>>> s1.update(s2)
	>>> s1
	{1, 2, 3, 4, 5, 6}
8.对于不可变对象,有时复合赋值运算符不同于运算符后再赋值
s1 = {1,2,3}
s2 = {2,3,4}
s = s1
if True:
    s1 = s1 | s2  # 对于可变对象,不等同于s1 |= s2
    print(s)      #  {1,2,3}
else:
    s1 |= s2      # 改变了原来的对象
    print(s)      # {1,2,3,4}
9.集合推倒式:
用可迭代对象来创建(生成)集合的表达式
语法:
	{表达式 for 变量 in 可迭代对象 [if 真值表达式]]}       # []括号内容可省略
示例:
	l = [1,3,5,7]
	s = {x ** 2 for x in l}
10.集合推倒式的嵌套规则与列表推倒式相同:
示例:
	>>> {x + y for x in 'ABC' for y in '123'}
	{'A2', 'B2', 'C2', 'A3', 'B1', 'B3', 'A1', 'C3', 'C1'}
11.固定集合(frozenset):
1.概念:
	创建一个不可变的,无序的,含有唯一元素的集合
	固定集合是集合set的不可变版本
2.作用:
	固定集合可以作为字典的键,也可以作为集合的值

3.固定集合的创建方法:
	创建空的固定集合:
	fs = frozenset()
	创建非空的固定集合:
	fs = frozenset([2,3,5,7])
	
	s  = {{1,2,3},4,5,6}     # 这样是错的,集合是可变的,集合内的元素必须是不可变对象。
	s = {frozenset{1,2,3,},4,5,6}  # 这样才是正确的,frozenset是集合的不可变版本,这样就可以往里放

4.固定集合的构造函数:
	frozenset() 创建空的固定集合
	frozenset(iterable) 用可迭代对象创建一个固定集合	

5.固定集合的运算:
	交集 、 并集 、 补集 、 对称补集 、 
	>    >=    <    <=      !=    == 
	in / not in 
	(以上规则等同于set中的用法)

6.固定集合的方法:
	相当于集合的全部方法去掉修改集合的方法

【总结】

  1. 数据类型:
    不可变类型:
    int ,float ,complex ,bool ,str ,【tuple】 ,frozenset(固定集合) ,bytes(字节串)
    注意:元组是不可变的,不可以通过索引改变它的值
    可变类型:
    list ,dict ,set ,bytearray(字节数组)

  2. 运算符:
    + - * / // % **
    < > <= >= == !=
    is / is not
    in / not in
    & | ^
    +(正号) -(负号)

  3. 表达式:
    条件表达式 x if x > y else y

  4. 赋值语句:x,y = 100,200

  5. 语句:if 语句,while语句,for语句,break语句,continue语句,pass语句,del语句

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值