元组和列表一样都是一组有序的数据的组合
元组中的元素一旦定义不可修改,因此元组成为不可变数据类型
由于元祖是 不可变得数据类型,只能使用下标访问,不能有其他操作
元组的切片和列表的一样
>>re = (1,2,3) >>rc = (4,5) >>res = re + rc >>print(res) #(1,2,3,4,5)
列表的推导式返回一个列表,元组推导式返回一个生成器,生成器是一个特殊的迭代器
生成器可以自定义,也可以使用元组推导式定义
生成器是按照某种算法去推算下一个数据或结果
推导式定义:里面是推导式,外面一个括号,就是生成器
自定义生成器:含有yield关键字的函数就是生成器,换句话说,含有yield关键字的函数生成的是迭代器,也就是说,生成器是一个返回迭代器的函数
生成器是迭代器的一种,因此可以使用迭代器的方法
verlist = [1,2,3,4,5] new = [] ll = (i**2 for i in verlist) print(type(ll)) #<class 'generator'> for i in ll: print(i,end=" ") #1 4 9 16 25
yield函数使用在生成器函数中
# def hello(): # print('hello,1') # return 1 # print('12') # return 2 # # hello() def hello(): print('hello1') yield 1 print('hello2') yield 2 res = hello() print(res) r = next(res) print(r) r = next(res) print(r) """ hello1 1 hello2 2 """