侧边栏壁纸
博主头像
闪电博主等级

行动起来,活在当下

  • 累计撰写 26 篇文章
  • 累计创建 8 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

python5

Administrator
2024-02-21 / 0 评论 / 0 点赞 / 3 阅读 / 2903 字

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迭代器

  1. range(stop)
  2. 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'
0

评论区