php网站忘记后台密码seo网站推广教程
目录
- 元组_特点_创建的两种方式_tuple要点
- 元组tuple
- 元组的创建
- 元组_元素访问_计数方法_切片操作_成员资格判断_zip()
- 元组的元素访问与计数
- Zip
- 元组_生成器推导式创建元组_总结
- 生成器推导式创建元组
- 元组总结
元组_特点_创建的两种方式_tuple要点
元组tuple
- 列表属于可变序列,可以任意修改列表中的元素。元组属于不可变序列,不能修改元组中的元素。因此,元组没有增加元素、修改元素、删除元素相关方法。
- 因此,我们只需要学习元组的创建和删除,元组元素访问和计数即可。
元组支持的操作有:
- 索引访问
- 切片操作
- 连接操作
- 成员关系操作 in
- 比较运算操作
- 计数:元组长度len、最大值max、最小值min、求和sum
元组的创建
- 通过()创建元组。小括号可以省略
a=(10,20,30) 或者a=10,20,30
如果元组只有一个元素,则必须后面加逗号。这是因为解释器会把(1)解释为整数1,而(1,)解释为元组
>>>a=(1)
>>>type(a)
<class ‘int’>
>>>a=(1,) #或者a=1,
>>>type(a)
<class ‘tuple’>
- 通过tuple()创建元组
Tuple可迭代的对象
例如:
>>>b=tuple() #创建一个空元组对象
>>>b=tuple(‘abc’)
>>>b=tuple(range(3))
>>>b=([2,3,4])
总结:
tuple()可以接收列表、字符串、其他类型序列、迭代器等生成元组
list()可以接收元组、字符串、其他类型序列、迭代器等生成列表
元组_元素访问_计数方法_切片操作_成员资格判断_zip()
元组的元素访问与计数
- 元组的元素不能修改
>>>a=(20,10,30,9,8)
>>>a[3]=33
Error!
- 元组的元素访问和列表一样,只不过返回的仍是元组
>>>a=(20,10,30,90,8)
>>>a[1]
10
>>>a[1:3]
(10,30)
>>>a[:4]
(20,10,30,9)
- 列表关于排序的方法list.sorted()是修改原列表对象,元组没有该方法。如果要对元组排序,只能使用内置函数sorted(tupleObj),并生成新的列表对象。
>>>a=(20,10,30,9,8)
>>>sorted(a)
[8,9,10,20,30]
Zip
- Zip(列表1,列表2,……)将多个列表对应位置的元素组合成为元组,并返回这个zip对象。
>>>a=[10,20,30]
>>>b=[40,50,60]
>>>c=[70,80,90]
>>>d=zip(a,b,c)
>>>list(d)
[(10,40,70),(20,50,80),(30,60,90)]
元组_生成器推导式创建元组_总结
生成器推导式创建元组
- 形式上看,生成器推导式与列表推导式类似,只不过生成器推导式使用小括号。列表推导式直接生成列表对象,生成器推导式生成的既不是列表也不是元组,而是一个生成器对象。
- 我们可以通过生成器对象,转化为列表对象或者元组对象。也可以使用生成器对象的_next_()方法进行遍历,或者直接作为迭代器对象来使用。不管什么方法使用,元素访问结束后,如果需要重新访问其中元素,必须重新闯进啊该生成器对象。
【操作】生成器的使用测试
>>>s=(x*2 for x in range(4))
>>>s
<generator object <genexpr> at 0x0000000002BDEB48>
>>>tuple(s)
(0,2,4,6)
>>>list(s) #只能访问一次,第二次就空了。需要再生成一次
[]
>>>tuple(s)
()
>>>s=(x*2 for x in range(4))
>>>s._next_()
0
>>>s,_next_()
2
>>>s._next_()
4
元组总结
- 元组的核心特点是:不可变序列
- 元组的访问速度比列表快
- 与整数和字符串一样,元组可以作为字典的键,列表则永远不能作为字典的键使用。