Python day5:列表生成式,生成器,迭代器
2018-02-03 16:54
701 查看
1.列表生成式
生成有一定规律的列表可以使用列表生成式
如生成1到10的列表L=[x for x in range(1,11)]
生成1到10之中偶数的列表L=[x for x in range(1,11) if x%2==0]
生成1到10之中数的平方列表L=[x*x for x in range(1,11)]
多重循环:L=[m+n for m in range(1,11) for n in range(11,21)]
isinstance(x,str)可以用来判断是否为字符串,是则返回True,不是返回False.这是一个内置函数(from collections import Iterable可以判断是否可以迭代)
留意L2的if else语句,类似于C语言的三目运算 a if ... else b for x in L 其中a,b为x的不同形式
2.生成器
<法一>将列表生成式的[]换为(),如g=(x*x for x in range(1,11))
<法二>
待续,此处不是很懂
3.迭代器
list,tuple,dict,str,generator都可以与for循环连用,成为可迭代,Iterable
而如果还能够使用next()返回下一个对象,则称为迭代器,generator是一种迭代器,称为Iterator.迭代器无法预先知道序列长度, 可以表示无穷长的序列, 例如全体自然数. 而list,tuple,dict,str不行
判断函数:
True
True
True
True
False
False
False
True
生成有一定规律的列表可以使用列表生成式
如生成1到10的列表L=[x for x in range(1,11)]
生成1到10之中偶数的列表L=[x for x in range(1,11) if x%2==0]
生成1到10之中数的平方列表L=[x*x for x in range(1,11)]
多重循环:L=[m+n for m in range(1,11) for n in range(11,21)]
L=['ASUS','Dell','Leon'] print([s.lower() for s in L]) L1 = ['Hello', 'World', 18, 'Apple', None] L2=[s.lower() if isinstance(s,str) else s for s in L1 ] print(L2) L3=[s.lower() for s in L1 if isinstance(s,str)] print(L3)
isinstance(x,str)可以用来判断是否为字符串,是则返回True,不是返回False.这是一个内置函数(from collections import Iterable可以判断是否可以迭代)
留意L2的if else语句,类似于C语言的三目运算 a if ... else b for x in L 其中a,b为x的不同形式
2.生成器
<法一>将列表生成式的[]换为(),如g=(x*x for x in range(1,11))
<法二>
待续,此处不是很懂
s = (x * x for x in range(5)) print(s) for x in s: print(x) def fib(max): n, a, b = 0, 0, 1 while n < max: yield b a, b = b, a + b n = n + 1 return 'done' f = fib(10) print('fib(10):', f) for x in f: print(x) # call generator manually: g = fib(5) while 1: try: x = next(g) print('g:', x) except StopIteration as e: print('Generator return value:', e.value) break
3.迭代器
list,tuple,dict,str,generator都可以与for循环连用,成为可迭代,Iterable
而如果还能够使用next()返回下一个对象,则称为迭代器,generator是一种迭代器,称为Iterator.迭代器无法预先知道序列长度, 可以表示无穷长的序列, 例如全体自然数. 而list,tuple,dict,str不行
判断函数:
from collections import Iterable print(isinstance([],Iterable)) print(isinstance((),Iterable)) print(isinstance({},Iterable)) print(isinstance((x*x for x in range(1,11)),Iterable)) from collections import Iterator print(isinstance([],Iterator)) print(isinstance((),Iterator)) print(isinstance({},Iterator)) print(isinstance((x*x for x in range(1,11)),Iterator))
True
True
True
True
False
False
False
True
from collections import Iterable, Iterator def g(): yield 1 yield 2 yield 3 print('Iterable? [1, 2, 3]:', isinstance([1, 2, 3], Iterable)) print('Iterable? \'abc\':', isinstance('abc', Iterable)) print('Iterable? 123:', isinstance(123, Iterable)) print('Iterable? g():', isinstance(g(), Iterable)) print('Iterator? [1, 2, 3]:', isinstance([1, 2, 3], Iterator)) print('Iterator? iter([1, 2, 3]):', isinstance(iter([1, 2, 3]), Iterator)) print('Iterator? \'abc\':', isinstance('abc', Iterator)) print('Iterator? 123:', isinstance(123, Iterator)) print('Iterator? g():', isinstance(g(), Iterator)) # iter list: print('for x in [1, 2, 3, 4, 5]:') for x in [1, 2, 3, 4, 5]: print(x) print('for x in iter([1, 2, 3, 4, 5]):') for x in iter([1, 2, 3, 4, 5]): print(x) print('next():') it = iter([1, 2, 3, 4< ac18 span style="color:#cc7832">, 5]) print(next(it)) print(next(it)) print(next(it)) print(next(it)) print(next(it)) d = {'a': 1, 'b': 2, 'c': 3} # iter each key: print('iter key:', d) for k in d.keys(): print('key:', k) # iter each value: print('iter value:', d) for v in d.values(): print('value:', v) # iter both key and value: print('iter item:', d) for k, v in d.items(): print('item:', k, v) # iter list with index: print('iter enumerate([\'A\', \'B\', \'C\']') for i, value in enumerate(['A', 'B', 'C']): print(i, value) # iter complex list: print('iter [(1, 1), (2, 4), (3, 9)]:') for x, y in [(1, 1), (2, 4), (3, 9)]: print(x, y)
相关文章推荐
- Python笔记-列表生成式、生成器generator(包括斐波拉契数列)、迭代器Iterator
- python的高级特性:切片,迭代,列表生成式,生成器,迭代器
- python3 列表生成式、生成器、迭代器
- Python之列表生成式、生成器、可迭代对象与迭代器
- python 列表生成式、生成器、迭代器、yield
- 【Python】[高级特性]切片,迭代,列表生成式,生成器,迭代器
- python(四)上:列表生成式、生成器、迭代器和内置函数
- python迭代器和生成器(3元运算,列表生成式,生成器表达式,生成器函数)
- Python高级特性(切片,迭代,列表生成式,生成器,迭代器)
- 初学Python——列表生成式、生成器和迭代器
- Python高级特性(切片,迭代,列表生成式、生成器、迭代器)
- Python高级特性(切片 迭代 列表生成式 生成器 迭代器)学习笔记
- python学习 生成器 列表生成式 迭代器
- Python3中的列表生成式、生成器与迭代器实例详解
- Python中的列表生成式与生成器学习教程
- 2016.4.10Python列表生成式及生成器generator
- python3基础: 元组tuple、 列表list、 字典dict、集合set。 迭代器、生成器
- 举例讲解Python中的迭代器、生成器与列表解析用法
- python基础五_列表生成式,生成器
- 学习7: 列表生成式,生成器,迭代器,可迭代对象