元组tuple
元组是一个有序元素组成的集合
使用小括号()表示
元组是不可变对象
元组的定义、初始化
定义
- tuple()-> empty tuple
- tuple(iterable)->tuple initialized from iterable’s items
new1=tuple()
new2=tuple(range(5))
new3=tuple([1,3,4,2])
new4=(1,) # 单个元素元组必须加逗号否则认为是普通元素
print(new1)
print(new2)
print(new3)
print(new4)
元组的访问
- 支持索引
- 正索引:从左到右,从0开始,为每一个元素编号
- 负索引:从右到左,从-1开始
- 正负索引不可以超界,否则引发异常indexError
- 元组通过索引访问
- tuple[index],indexj就是索引,使用中括号访问
元组查询
index(value,[start,[stop]])
- 通过值value,从指定区间查找元组内的元素是否匹配
- 匹配第一个就立即返回索引
- 匹配不到,抛出异常ValueError
count(value) - 返回元组中匹配value的次数
时间复杂度 - index和count方法都是O(n)
- 随着元组数据规模的增大,而效率下降
元组其它操作
- 元组是只读的,所以增删改方法都没有
命名元组
- 帮助文档中,查阅namedtuple,有使用例程
- namedtuple(typename,field_names,verbose=False,rename=False)
- 命名元组,返回一个元组的子类,并定义了字段
- field_names可以是空白字符或逗号飞哥的字段的字符串,可以是字段的段表
from collections import namedtuple
Point=namedtuple('_Point',['x','y'])
p=Point(11,22)
Student=namedtuple('Stu','name age')
tom=Student('tom',20)
jerry=Student('jerry',18)
print(tom.name,jerry.age)
定义了一个元组,外表名称和实际名称不同。