************** 元组tuple ***************
元组的定义
- 定义空元组
tuple = ()
- 定义单个值的元组
tuple = (fentiao,)
- 一般的元组(元素有列表,元组,字符)
tuple = (fentiao, 8, male)>>> t = (1,2,(1,2),[1,2])
>>> type(t)
<type 'tuple'>
>>> t[2]
(1, 2)>>> a=t[2]
>>> type(a)
<type 'tuple'>为什么需要元组?
>>> userinfo1 = "fentiao 4 male"
>>> userinfo2 = "westos 10 unknown"
>>> userinfo1[:7]
'fentiao'
>>> userinfo2[:6]
'westos'
字符串中操作提取姓名/年龄/性别的方式不方便,诞生元组与列表这两个数据类型
>>> t1 = ("fentiao",4,"male")>>> t2 = ("westos", 10, "unknown")
>>> type(t1)
<type 'tuple'>
>>> type(t2)
<type 'tuple'>元组特性
不能对元组的值任意更改;元组特性>>> t1
('fentiao', 4, 'male')
>>> t1[1] = 5
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
对元组分别赋值,引申对多个变量也可通过元组方式分别赋值执行操作并思考
>>> t1
('fentiao', 4, 'male')
>>> name,age,gender=t1
>>> print name,age,gender
fentiao 4 male
>>> a,b,c=(1,2,3)
>>> print a,b,c
1 2 3
注意:C语言中,定义一类型,必须先开辟一存储空间,当后期重新赋值时也一定是整型的;
python中,先在内存上存储数据后,再通过标签去引用。不同的字符串占用不同的存储空间。
>>> str1
'12345'
>>> id(str1)
140205776037520
>>> str1 = "abcde"
>>> id(str1)
140205776037424
>>> str2 = "12345"
>>> id(str2)
140205776037520元组的操作
元组也属于序列,可执行的操作如下:
索引、切片、重复、连接和查看长度1).元组的索引和切片
>>> t1[0]
'fentiao'
>>> t2[0]
'westos'
>>> t2[0:2]
('westos', 10)删除元组
t = (1,2,3)
>>>del(t)
元组的比较
>>> t = (1,2,3)
>>> len(t)
3
>>> cmp(t,(1,2)) --元组t与(1,2)比较如果t包含(1,2)结果为1,否则为-1
1
>>> cmp(t,(1,2,3,4,5))
-1元组的方法
t.count(value)-->int
返回value在元组中出现的次数;
t.index(value)
返回value在元组中的偏移量(即索引值)