元组由简单的对象构成,与列表类似,都是序列。但是元组是不可变的序列,不可以在原处对其修改,这一点与字符串一样。
元组不支持任何的方法调用,但是支持大多数的序列操作,也就是说列表、字符串等的序列操作对其都有效,具有以下的属性:
元组的读取和列表一样,使用索引法即可。区别在于,元组是不可变序列,一旦生成就是不变的了。
>>> student=('Athena','Kimi','Lucy')
>>> student[0]
'Athena'
Python3.0支持以下的元组创建方法:
-圆括号与逗号创建法
-使用单个逗号创建单个元素元组
-使用内建tuple(iterable)构造
使用圆括号创建一个元组,然后使用逗号将每个元素隔开
>>> student=('Athena','Kimi','Lucy')
>>> student[0]
'Athena'
在元组中很多人有一个误解,认为是圆括号才是创建元组的标志,实际上
逗号才是创建元组的标志!
上面这个例子,使用逗号,不使用圆括号也是可以创建的。
>>> student='Athena','Kimi','Lucy'
>>> student[0]
'Athena'
切记!逗号创建元组,而非括号!
上面我们已经了解到了逗号是创建元组的标志,下面这个例子会更加证明这个概念。
创建一个只有一个元素的元组
>>> chinese_teacher='Zeus',
>>> chinese_teacher[0]
'Zeus'
>>> type(chinese_teacher) #使用type查看变量的类型
<class 'tuple'>
>>> chinese_teacher=('Zeus') #单单使用括号不会创建成元组类型
>>> chinese_teacher[0] #这是字符串
'Z'
>>> type(chinese_teacher)
<class 'str'>
单个元素的元组,一定要使用一个逗号,来标识。
tuple(iterable)中的iterable,可以是
>>> math_teacher=tuple(['Bob','Tom','Jack']) #列表
>>> math_teacher[0]
'Bob'
>>> class_number=tuple('123456') #字符串
>>> class_number[0]
'1'
>>> pe_teacher=tuple(math_teacher) #元组
>>> pe_teacher
('Bob', 'Tom', 'Jack')
>>> music_teacher=tuple(person for person in ['Allen','Amy']) #可迭代的对象--列表解析表达式
>>> music_teacher
('Allen', 'Amy')
如果tuple中没有参数,就会创建一个空的元组
>>> chariman=tuple()
>>> chariman
()
1.使用一对空的圆括号
>>> chairman=()
>>> chariman
()
>>> type(chairman)
<class 'tuple'>
2.使用tuple()构造函数但是却不带参数。
>>> chairman=tuple()
>>> chairman
()
>>> type(chairman)
<class 'tuple'>
元组的本质仍旧是序列,所以支持字符串和列表的一般序列方法,对于元组也同样有效,比如合并、重复、分片、索引等
元组和字符串,列表一样,都是有序的序列。
元组自身自持的方法不多,一共就只有两个
Python的创造者把元组看成了简单的数据合集,将列表看成了随着时间会发生改变的数据结构。