Python数据类型:
数字、布尔值、字符串、
元组(tuple )----一般用小括号表示一系列Python数据类型按照顺序组成的序列(1,‘abc’,0.4);
列表——列表和元组在功能上类似,但是是中括号扩起来,同时列表中的数据可改变,元组中的不可以;
字典——hashmap,key-vaule键值对,用大括号括起来{1:’abc’,’a’:0.1},键值对中的键无具体类型要求。、
python 生成器和迭代器
它是一个带状态的对象,他能在你调用next()方法的时候返回容器中的下一个值,任何实现了__iter__和__next__()(python2中实现next())方法的对象都是迭代器,__iter__返回迭代器自身,__next__返回容器中的下一个值,主要是在遍历容器。
生成器其实是一种特殊的迭代器,它不需要再像上面的类一样写__iter__()和__next__()方法了,只需要一个yiled关键字。生成器一定是迭代器(反之不成立)
例如:
def fib():
prev, curr = 0, 1
while True:
yield curr
prev, curr = curr, curr + prev
>>> f = fib()
>>> list(islice(f, 0, 10))
[1, 1, 2, 3, 5, 8, 13, 21, 34, 55]
fib就是一个普通的python函数,它特殊的地方在于函数体中没有return关键字,函数的返回值是一个生成器对象。当执行f=fib()返回的是一个生成器对象,此时函数体中的代码并不会执行,只有显示或隐示地调用next的时候才会真正执行里面的代码。
网友评论