41 枚举对象
Python 的枚举对象
>>> s = ["a","b","c"]
>>> for i,v in enumerate(s):
print(i,v)
0 a
1 b
2 c
42 创建迭代器
>>> class TestIter():
def __init__(self,lst):
self.lst = lst
# 重写可迭代协议__iter__
def __iter__(self):
print('__iter__ is called')
return iter(self.lst)
迭代 TestIter 类:
>>> t = TestIter()
>>> t = TestIter([1,3,5,7,9])
>>> for e in t:
print(e)
__iter__ is called
1
3
5
7
9
43 创建range迭代器
- range(stop)
- range(start, stop[,step])
生成一个不可变序列的迭代器:
>>> t = range(11)
>>> t = range(0,11,2)
>>> for e in t:
print(e)
0
2
4
6
8
10
44 反向
>>> rev = reversed([1,4,2,3,1])
>>> for i in rev:
print(i)
1
3
2
4
1
45 打包
聚合各个可迭代对象的迭代器:
>>> x = [3,2,1]
>>> y = [4,5,6]
>>> list(zip(y,x))
[(4, 3), (5, 2), (6, 1)]
>>> for i,j in zip(y,x):
print(i,j)
4 3
5 2
6 1
46 过滤器
函数通过 lambda 表达式设定过滤条件,保留 lambda 表达式为 True
的元素:
>>> fil = filter(lambda x: x>10,[1,11,2,45,7,6,13])
>>> for e in fil:
print(e)
11
45
13
47 链式比较
>>> i = 3
>>> 1 < i < 3
False
>>> 1 < i <=3
True
48 链式操作
>>> from operator import (add, sub)
>>> def add_or_sub(a, b, oper):
return (add if oper == '+' else sub)(a, b)
>>> add_or_sub(1, 2, '-')
-1
49 split 分割**
>>> 'i love python'.split(' ')
['i', 'love', 'python']
50 replace 替换
>>> 'i\tlove\tpython'.replace('\t',',')
'i,love,python'
评论区