Python--5. Python序列结构——元组

3.2 元组

3.2.1 元组创建与元素访问(详见p59)

如果元组中只有一个元素,则必须在最后增加一个逗号

3.2.2 元组与列表的异同点

  • 相同:
    • 列表和元组都属于有序序列,都支持使用双向索引访问其中元素
    • 支持count()、index()、len()、map()、filter()等内置函数
    • 支持+、*、+=、in等运算符
  • 不同:
    • 元组属于不可变序列,不可以直接修改元组中元素的值,也无法为元组增加或删除元素
    • 不支持append()、extend()、insert()、remove()、pop()等方法
    • 对于del操作,仅支持使用del删除整个元组
    • 对于切片操作,只能通过切片来访问元组中的元素

3.2.3 生成推导式

  • 生成器推导式的结果是一个生成器对象
  • 对于生成器对象的元素的访问,只能从前往后正向访问其中的元素,没有任何方法可以再次访问以访问过的元素,也不支持使用下标访问其中的元素
g = ((i+2)**2 for i in range(10))
print(g)
print(type(g))
print(tuple(g))  #将生成器对象转换为元组
print(list(g))  #生成器对象已遍历结束,没有元素了
<generator object <genexpr> at 0x000001FDB2D1C930>
<class 'generator'>
(4, 9, 16, 25, 36, 49, 64, 81, 100, 121)
[]
g = ((i+2)**2 for i in range(10))
print(g.__next__())  #使用生成器对象__next__()方法获取元素
print(g.__next__())  #获取下一个元素
print(next(g))
4
9
16
x = filter(None,range(20))  #filter对象也具有类似的特点
print(1 in x)
print(5 in x)
print(2 in x)  #返回结果为False,因为已经访问到"5"了,而"2"在"5"之前,向后遍历没有"2"
True
True
False
x = map(str,range(20))  #map对象也具有类似的特点
print('0' in x)
print('0' in x)
True
False
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值