1、 元组可以存放不同种类型的元素
2、 元组是无序的
3、 元组长度不可变
一、元组推导式
names = ("大傻", "二傻", "三傻")
names = (name for name in names if "二" in name)
print(names) #返回了一个生成器对像
输出
<generator object <genexpr> at 0x000002891146CAC8>
好在这个对像可以迭代
我们可以这么写
names = ("大傻", "二傻", "三傻","二呆")
names =tuple((name for name in names if "二" in name)) #转换一下
print(names)
('二傻', '二呆')
二、具名元组
1、我们定义一个学生的元组
student = ("张三",13,98)
时间久了,你再看,张三好像还知道是啥 ,应该是名子,13,18又是什么鬼,所以具名元组出现了
具名元组的步骤
(1)先定义一个元组的模板
from collections import namedtuple(2)再利用这个模板,为元组初始化
from collections import namedtuple #引入包
#创建具名类模板,Students是模板名子,["name","age","score"]是元素名子
Student = namedtuple("Students",["name","age","score"])
student = Student("张三",13,98) #实现具名类
print(student) #这样输出元组,你是不是就知道每个元组是什么了
#可以用元素名子调用
print(student.name+" "+str(student.age)+" "+str(student.score))
for info in student: #具名类的名子只是说明,本身对元组结构没有改变,我们还可以正常输出
print(info)
Students(name='张三', age=13, score=98)
张三 13 98
张三
13
98