python学习(四)

元组

是python内置的数据结构之一,是一个不可变序列
不可变序列:字符串,元组
可变序列:列表,字典
注意事项:元组存放的是对象的引用
		1)如果元组中的对象本身是不可变对象,则不能再引用其他对象
		2)如果元组中的对象是可变对象,则可变对象的引用不允许改变,但数据可以改变
  1. 元组的创建方式
    使用小括号
    t = ('python','hello',98)
    使用内置函数tuple()
    t = tuple( ('python','hello',98) )
  2. 元组的遍历(使用for…in… 遍历)
    for item in t : 执行语句

集合

与列表和字典一样都是可变序列,且集合当中的元素是无序的
  1. 集合的创建方式
    使用{}进行创建
    与字典的区别为:字典是Key与Value的键值对,而集合只有单一的值,且集合中的数据不能重复
    s = {'python','hello',98}
    使用内置函数set()
    s = set() 内部参数可以为字符串,列表,元组等
  2. 集合元素的判断操作
    元素 in 集合
    元素 not in 集合
  3. 集合元素的新增操作
    s.set() 可以往集合中添加一个元素
    s.update() 可以往集合中添加多个元素,参数可以为集合,列表,元组
  4. 集合元素的删除操作
    s.remove() 一次删除一个指定元素,若元素不存在则会抛出异常
    s.discard() 一次删除一个指定元素,若元素不存在不会抛出异常
    s.pop() 一次删除任意一个元素
    s.clear() 清空集合
  5. 集合的关系
    两个集合是否相等:使用==或!=进行判断
    s1 == s2 s1与s2是否相等
    一个集合是否是另一个集合的子集:可以调用方法issubset进行判断
    s1.issubset(s2) s1是否是s2的子集
    一个集合是否是另一个集合的超集:可以调用方法issuperset进行判断
    s1.issuperset(s2) s1是否是s2的超集
    两个集合是否没有交集:可以调用方法isdisjoint进行判断
    s1.isdisjoint(s2) s1与s2是否没有交集
  6. 集合的数学操作
    求交集
    s1.intersection(s2) 或 s1 & s2
    求并集
    s1.union(s2) 或 s1 | s2
    求差集
    s1.difference(s2) 或 s1 - s2
    求对称差集
    s1.symmetric_difference(s2)
  7. 集合生成式
    s = {i for i in range(6)} 可以生成0-5的一个集合
    列表、元组、字典、集合的对比

生成器

定义方式一:在小括号()写入推导式。在未调用时,不会产生数据,每调用一次,生成一个元素
定义方式二:借助函数完成,只要在函数中出现了yield关键字,该函数就会变为一个生成器
  • 通过调用__next__()方法,推导式会自动推导出元素。
g = (x*3 for x in range(10))
print(g.__next__())
  • 通过系统自带的next(生成器对象)方法
print(next(g))
  • 通过定义方式二产生生成器对象
    yield相当于return,但拥有暂停功能,当调用方法输出时,该函数才会执行,并且执行到yield时,会将当前的数进行返回,并停到yield位置,直到下一次调用时,再从yield进行执行。
    可以通过return给用户返回提示信息
def func():
	n = 0
	while True:
		n += 1
		yield n		
  • 生成器方法
    获取下一个元素__next__()
    向函数中yield中传值:send(Value),第一次调用时,使用send(None)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值