p40
元组 tuple
:属于不可变序列,用法和列表差不多。
1.通过()创建元组,小括号可以省略。
a = (10,20,30) 或者 a = 10,20,30
注释:如果元素只有一个,则必须后面加逗号,因为解释器会把(1)解释成1,(1,)解释成元组。
2 . 通过tuple()创建元组:
>>> b = tuple()
>>> b
()
>>> b = tuple("abc")
>>> b
('a', 'b', 'c')
>>> b = tuple(range(3))
>>> b
(0, 1, 2)
>>> b = tuple([2,3,4])
>>> b
(2, 3, 4)
>>>
3 元组对象的删除:
>>>del b
p41:
1,元组的元素不可以修改:
>>> a =(1,2,3)
>>> a[1]=6
Traceback (most recent call last):
File "<pyshell#19>", line 1, in <module>
a[1]=6
TypeError: 'tuple' object does not support item assignment
>>>
2 . 也可以用切片。
3.元组的排序:只能用内置函数 sorted(),并生成新的对象。
>>> a = (20,30,40,10)
>>> sorted(a)
[10, 20, 30, 40]
>>> a
(20, 30, 40, 10)
>>> b = sorted(a)
>>> b
[10, 20, 30, 40]
>>>
4. zip 对象将列表对应元素组合成元组,并且返回这个zip 对象,通常再用list函数列出来。
>>> a = [10,20,30]
>>> b = [40,50,60]
>>> c = [70,80,90]
>>> d = zip(a,b,c)
>>> d
<zip object at 0x035572B0>
>>> list(d)
[(10, 40, 70), (20, 50, 80), (30, 60, 90)]
>>>
5 生成器推导式创建元组。
:>>> s = (x*2 for x in range(5))
>>> s
<generator object <genexpr> at 0x035691F0>
>>> tuple(s)
(0, 2, 4, 6, 8)
>>> list(s) #只能访问一次,第二次就为空了,需要再生成一次。
[]
>>> s
<generator object <genexpr> at 0x035691F0>
>>>
还没有评论,来说两句吧...