huazhi 发表于 2018-8-14 13:36:09

python标准库之itertools

  itertools库
  迭代器(生成器)在python中是一种很常用的也很好用的数据结构,比起列表(list)来说,迭代器最大的优势就是延迟计算,按需使用。
  itertools库的几种方法介绍:
  itertools.accumulate:列表累加方法
>>> import itertools  
>>> x = itertools.accumulate(range(10))
  
>>> print(list(x))
  

  itertools.chain:将多个列表合成一个列表的方法
>>> x =   
>>> y =
  
>>> a = itertools.chain(x,y)
  
>>> print(list(a))
  

  itertools.combinations:求列表中指定数目的元素不重复的所有组合
  注:2表示的意思是求出列表中随机2个元素搭配不重复的集合
>>> x =   
>>> a = itertools.combinations(x,2)
  
>>> print(list(a))
  
[(1, 2), (1, 3), (1, 4), (1, 5), (2, 3), (2, 4), (2, 5), (3, 4), (3, 5), (4, 5)]
  itertools.islice:对列表进行切片
  注:0表示起始位置,5表示结束位置,2表示步长
>>> x =   
>>> a = itertools.islice(x,0,5,2)
  
>>> print(list(a))
  

  itertools.count:计数器,可以指定起始位置和步长
  注:start表示起始位置,step表示步长
>>> x = itertools.count(start=2,step=3)  
>>> print(list(itertools.islice(x,5)))
  

  itertools.cycle:循环列表或者迭代器中的数据
>>> x = itertools.cycle('ABCD')  
>>> print(list(itertools.islice(x,0,10,2)))
  
['A', 'C', 'A', 'C', 'A']
  itertools.repeat:生成一个拥有指定数量并且元素相同的迭代器
>>> print(list(itertools.repeat('liuwei',5)))  
['liuwei', 'liuwei', 'liuwei', 'liuwei', 'liuwei']
  
#也可用下面的方法生成相同元素的列表
  
>>> item = ["liu"]*5
  
>>> print(item)
  
['liu', 'liu', 'liu', 'liu', 'liu']
  其它还有很多,用到的时候再进行总结
页: [1]
查看完整版本: python标准库之itertools