Python核心编程学习笔记(八)

集合set

       集合是可变的容器

       集合内的数据对象都是唯一的(不能重复多次)

       集合是无序的存储结构,集合中的数据没有先后顺序关系

       集合内的元素必须是不可变的对象(不能放列表字典、字典等可变对象)

       集合是可迭代对象

       集合是相当于只有键,没有值的字典(键则是集合的数据)

创建空的集合:

       set()

创建非空集合:

       s={1,2,3}

集合的构造函数set

set() 创建一个空的集合对象(不能用{}来创建空集合,这是空字典)

set(iterable) 用可迭代对象创建一个新的集合

  示例:

              s=set()

              s={1,2,3,4}

              s=set(“ABC”)      #s={‘A’,’B’,’C’}

              s=set({1:’一’, 2:’二’, 5:’五’})     #s={1,2,5}

              s=set([1,2,3,2])                                #s={1,2,3}

              s=set(range(10))

集合的运算

       交集 &, 并集 |, 补集 -, 子集 <, 超集 >, 对称补集 ^

& 生成两个集合的交集

       s1={1,2,3}

       s2={2,3,4}

       s3=s1 & s2     # s3={2,3}

| 生成两个集合的并集

       s1={1,2,3}

       s2={2,3,4}

       s3=s1 | s2     # s3={1,2,3,4}

- 生成两个集合的补集

       s1={1,2,3}

       s2={2,3,4}

       s3=s1 - s2   #生成属于s1但不属于s2的集合  s3={1}

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

       s1={1,2,3}

       s2={2,3,4}

       s3=s1 ^ s2     # s3={1,4}

> 判断一个集合是另一个集合的超集

< 判断一个集合是另一个集合的子集

       s1={4,5,6}

       s2={4,5}

       s1 > s2   #True  s1是s2的超集

       s2 < s1   #True  s2是s1的子集

== != 判断集合是否相等

       {1,2,3} == {3,2,1}   # True

       {1,2} != {3,4}       # True

>= <= 判断集合的包含和被包含关系

in /not in运算符

       判断一个元素是否存在于集合中(同其他容器类型的in规则相同)

集合和字典的优点:

       in/ not in运算符的查找速度快

集合的內建函数操作:

       len(x),max(x),min(x),sum(x),any(x),all(x)

 

Python3 集合中常用的方法

方法

意义

S.add(e)

在集合中添加一个新的元素e;如果元素已经存在,则不添加

S.remove(e)

从集合中删除一个元素,如果元素不存在于集合中,则会产生一个KeyError错误

S.discard(e)

从集合S中移除一个元素e,在元素e不存在时什么都不做;

S.clear()

清空集合内的所有元素

S.copy()

将集合进行一次浅拷贝

S.pop()

从集合S中删除一个随机元素;如果此集合为空,则引发KeyError异常

S.update(s2)

用 S与s2得到的全集更新变量S

 

集合是可迭代对象

       用for 语句可以得到集合中的全部元素

              s={1,’二’,3.14,’four’}

              for x in s:

                     print(x)

集合推导式:

       集合推导式是用可迭代对象生成集合的表达式

       语法:

              {表达式 for 变量 in 可迭代对象  [if 真值表达式]} 

     注:[]代表可省略  

固定集合 frozenset

       固定集合是不可变的,无序的,含有唯一元素的集合

       (集合是可变的,可以增删元素,固定集合不可变)

   作用:

              固定集合可以作为字典的键,也可以作为集合的值

       创建空的固定集合:

              fz=frozenset()

       创建非空的固定集合

              fz=frozenset(iterable) 用可迭代对象创建集合

       例:fz=frozenset([2,3,5,7])

固定集合的运算:

       同set运算完全一致

       交集 &, 并集 |, 补集 -, 子集 <, 超集 >, 对称补集 ^

       in /not in

函数function

       函数是可以重复执行的语句块,可以重复调用

       作用:

              用于封装语句,提高代码的重用性

              用于定义用户级别的函数

       语法:

              def 函数名(传参列表):

                     语句块

说明:

       1.函数名就是语句块的名称

       2.函数名的命名规则和变量名相同(函数名必须是标识符)

       3.函数名是一个变量

       4.函数名有自己的名字空间,在函数外部不可以访问函数内部的变量,

    在函数内部可以访问函数外部的变量,要让函数处理外部数据需要用参数给函数传入一些数据

       5.参数列表可以为空

       6.语句部分不能为空,如果为空需要用pass语句填充

函数调用:

       函数名(实际调用传递参数)

       说明:

              函数调用是一个表达式

              如果没有return语句,函数执行完毕后返None对象

              如果函数需要返回其他的对象需要用到return语句

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值