python基础06

集合 set

集合是可变的容器
集合内的数据对象都是唯一的(不能重复多次)
集合是无需的存储结构,集合中的数据没有先后关系
集合内的元素必须是不可变对象
集合是可迭代的(可以用for语句遍历)
集合是相当于只有键没有值的字典(键则是集合的数据)

创建集合的构造函数

set() 创建一个空的集合对象(不能用{}来创建空集合)
set(iterable) 用可迭代对象来创建新的集合对象

示例:
  s= set() # s 绑定空集合 创建空集合的唯一方式
>>> s = set(range(1,5))
>>> s
{1, 2, 3, 4}

注释:

 非空集合用{}括起来,内部的各个元素用逗号(,)分隔

字面值方式创建非空集合
s = {1,2,3,4}
s = set(“ABCCBA”)
s = set({1:“一”,3:“三”,8:“八”}) #{8, 1, 3}

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

& 生成俩个集合的交集
s1 = {1,2,3}
s2 = {2,3,4}
s3 = s1 & s2 # s3 = {2,3}
| 生成俩个集合的并集
s1 = {1,2,3}
s1 = {2,3,4}
s3 = s1 | s2 #s3 = {1,2,3,4}

  • 生成俩个集合的补集
    s1 = {1,2,3}
    s2 = {2,3,4}
    s3 = s1 - s2 #生成属于s1但不属于s2的所有元素

^生成俩个集合的对称补集
s1 = {1,2,3}
s2 = {2,3,4}
s3 = s1^s2 #s3 = {1,4}

s1 = {1,2,3}
s2 = {2,3}
s2>s1
False

s2<s1
True
== != 判断集合是否相同

in /not in

等同于列表的in 运算符

集合和字典的优点:
in /not in 运算符的运算速度比较快

能用于集合的内建(built-in)函数:
len(X)
max(X)
min(X)
sun(x)
any(x)
all(X)

练习:
经理有: 曹操,刘备,孙权
技术员:曹操,孙权,张飞,关羽
用集合求:
1 既是经理也是技术员的有谁
2 是经理但不是技术员的有谁
3 是技术员但不是经理的人有谁

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 l= s2, 用 S与s2得到的全集更新变量S

S.difference(s2) S - s2 补集运算,返回存在于在S中,但不在s2中的所有元素的集合
S.difference_update(s2) 等同于 S -= s2
S.intersection(s2) 等同于 S & s2
S.intersection_update(s2) 等同于S &= s2
S.isdisjoint(s2) 如果S与s2交集为空返回True,非空则返回False
S.issubset(s2) 如果S与s2交集为非空返回True,空则返回False
S.issuperset(…) 如果S为s2的子集返回True,否则返回False
S.symmetric_difference(s2) 返回对称补集, 等同于 S ^ s2
S.symmetric_difference_update(s2) 等同于 S ^= s2, 用 S 与 s2 的对称补集更新 S
S.union(s2) 生成 S 与 s2的全集, 等同于 S \

集合是可迭代对象

集合推导式
集合推导式是用可迭代对象创建集合的表达式
语法:
  {表达式 for 变量 in 可迭代对象 [if 真值表达式]}
  [] 代表其中内容可省略
示例:
L=[1,1,2,2,3,3,4,5,6,7,7]
{x ** 2 for x in L}

集合推导式的嵌套等同于列表推导式的嵌套

固定集合 frozenset

固定集合是不可变的,无序的 含有唯一元素的集合
作用:
  固定集合可以作为字典的键,还可以作为集合的值

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

示例:
fz=frozenset()
fz=frozenset(“hello”)
fz=frozenset([1,2,3,4,5])

固定集合的运算:

交集 & 并集 |  补集 - 对称补集^ in /not in 
< <= > >= == !=
(以上运算符用法等同于set的用法)

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

函数 function

什么是函数
函数是可以重复执行的语句块,可以重复调用并执行函数的面向过程编程的最小单位
作用:
用于封装语句块,提高代码的重用性
定义用户级别的函数
提高代码的可读性和易维护性
def 语句:
语法:
  def 函数名(形参列表):
语句块
作用:
  创建一个函数,将语句块打包,用函数名绑定。用来调用
说明:
  函数名的命名规则与变量名的规则相同(必须为标识符)
  函数名是一个变量,它用来绑定函数
函数有自己的名字空间,在函数外部不可以访问函数内部的变量,在函数内部可以访问外部的变量,但不能对外部的变量赋值
语句不认不能为空,如果为空需要填充pass语句
函数如果不需要传入参数,形参列表可以为空

       函数调用:
           语法:
               函数名(实际调用传递参数)
           说明:
               函数调用是一个表达式
               如果函数内部没有return语句,函数执行完毕后返回None

   return 语句
       语法:
       return[表达式]
       注:[]代表其中内容可省略
       作用:
       用于函数中,结束当前函数的执行,返回到调用该函数的地方,同时返回一个对象的引用关系
   说明:
       1、return 语句后跟的表达式可以省略,省略后想当于return None
       2、函数内部没有return语句,则函数执行完最后一条语句后返回None(相当于在最后加了一条return 语句)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值