51 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			51 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
|   | --- | |||
|  | title: Itertools | |||
|  | localeTitle: Itertools | |||
|  | --- | |||
|  | Itertools是一个函数的python模块,它返回生成器,只在迭代时才起作用的对象。 itertool函数的一些示例包括但不限于:chain(),imap(),product()和compress()。 | |||
|  | 
 | |||
|  | ### 链()
 | |||
|  | 
 | |||
|  | chain()函数将几个迭代器作为参数,并返回一个迭代器,它生成所有这些迭代器的内容,就像它们来自一个序列一样。 | |||
|  | 
 | |||
|  | ```py | |||
|  | import itertools  | |||
|  |  list(itertools.chain([1, 2], [3, 4]))  | |||
|  |   | |||
|  |  # Output  | |||
|  |  # [1, 2, 3, 4]  | |||
|  | ``` | |||
|  | 
 | |||
|  | ### islice()
 | |||
|  | 
 | |||
|  | islice()函数返回一个迭代器,它通过索引从输入迭代器返回所选项。它采用与列表的切片运算符相同的参数:start,stop和step。启动和停止是可选的。 | |||
|  | 
 | |||
|  | ```py | |||
|  | import itertools  | |||
|  |  list(itertools.islice(count(), 5))  | |||
|  |   | |||
|  |  # Output  | |||
|  |  # [0,1, 2, 3, 4]  | |||
|  | ``` | |||
|  | 
 | |||
|  | ### izip()
 | |||
|  | 
 | |||
|  | izip()返回一个迭代器,它将几个迭代器的元素组合成元组。它的工作方式类似于内置函数zip(),除了它返回迭代器而不是列表。 | |||
|  | 
 | |||
|  | ```py | |||
|  | import itertools  | |||
|  |  list(izip([1, 2, 3], ['a', 'b', 'c']))  | |||
|  |   | |||
|  |  # Output  | |||
|  |  # [(1, 'a'),(2, 'b'),(3, 'c')]  | |||
|  | ``` | |||
|  | 
 | |||
|  | 组合迭代器: | |||
|  | 
 | |||
|  | 迭代器参数结果 product()p,q,... \[repeat = 1\]笛卡尔积,相当于嵌套的for循环 permutations()p \[,r\] r-length元组,所有可能的排序,没有重复的元素 组合()p,r r-length元组,按排序顺序,没有重复元素 _与_ replacement()p,r r-length元组的组合,按排序顺序,具有重复元素 产品('ABCD',重复= 2)AA AB AC AD BA BB BC BD CA CB CC CD DA DB DC DD 排列('ABCD',2)AB AC AD BA BC BD CA CB CD DA DB DC | |||
|  | 
 | |||
|  | 组合('ABCD',2)AB AC AD BC BD CD | |||
|  | 
 | |||
|  | _与_替换组合('ABCD',2)AA AB AC AD BB BC BD CC CD DD | |||
|  | 
 | |||
|  | 来源:HTTPS://docs.python.org/3/library/itertools.html |